当前位置: 首页 > 面试题库 >

动态templateUrl-AngularJS

李鸿
2023-03-14
问题内容

因此从Angular
1.1.4开始,您可以拥有一个动态模板网址。从这里,

templateUrl-与模板相同,但是从指定的URL加载模板。由于模板加载是异步的,因此在加载模板之前,将暂停编译/链接。

您可以将templateUrl指定为表示URL的字符串,或者指定为使用两个参数tElement和tAttrs(在下面的编译函数api中进行描述)并返回表示URL的字符串值的函数。

我如何利用它来基于指令中的属性生成动态模板?显然,这是行不通的,因为tAttrs.templateType只是字符串“ templateType”

templateUrl: function (tElement, tAttrs) {
  if (tAttrs.templateType == 'search') {
    return '/b/js/vendor/angular-ui/template/typeahead/typeahead.html'
  } else {
    return '/b/js/vendor/angular-ui/template/typeahead/typeahead2.html'
  }
}

鉴于我无权访问示波器,该如何管理?


问题答案:

还可以在AngularJS中创建动态模板:在您的指令中使用:

template : '<div ng-include="getTemplateUrl()"></div>'

现在,您的控制器可以决定使用哪个模板:

$scope.getTemplateUrl = function() {
  return '/template/angular/search';
};

由于您可以访问范围参数,因此您还可以执行以下操作:

$scope.getTemplateUrl = function() {
  return '/template/angular/search/' + $scope.query;
};

因此,您的服务器可以为您创建一个动态模板。



 类似资料:
  • 问题内容: 我正在建立一个带有角度UI路由器的静态HTML网站进行导航。我基本上有一个带有多个(10+)html模板(页面)的ui视图,可以加载到该视图中。我所有的模板页面都位于名为“页面”的目录中。 所以我基本上想知道我们是否可以在$ stateProvider中仅定义一个状态来动态分配多个模板url,而不是为每个HTML模板页面编写不同的状态(如下所述)。 任何帮助深表感谢。 问题答案: 那应

  • 问题内容: 如何使用从数据库中获取的名称作为templateUrl文件名? 我已经试过了: 如果我的$ rootScope.template来自数据库查询,那似乎不起作用。不知道为什么,但是不起作用。 如果在我的控制器中执行$ rootScope.template =“ whatever.html”,则一切正常,但是,如果我从数据库中查询模板,则什么也不会发生。templateProvider中的

  • 问题内容: 我想基于我在angularjs引导程序中定义的预设常数来更改与控制器关联的templateUrl。我不知道该如何更改。我已经尝试了UrlRouteProvider,但无法弄清楚如何从文件系统中提取html。我被卡在templateUrl上。 在下面的代码中,输出首先显示“确实将svcc传递到了第一个函数的console.out中,但是在templateUrl定义函数中,CONFIG未定

  • 问题内容: 我正在使用Jasmine编写AngularJS的指令测试,并与它们一起使用templateUrl:https : //gist.github.com/tanepiper/62bd10125e8408def5cc 但是,当我运行测试时,我得到了要点中包含的错误: 从我在文档中阅读的内容来看,我认为自己做得正确,但是事实并非如此-我在这里想念的是什么? 谢谢 问题答案: 如果您使用的是ng

  • 问题内容: 我正在按照本教程进行操作,试图在我的MVC3应用程序中包含一个SPA,该SPA由控制器DemoController.cs调用。 当应用尝试通过导航栏加载不同的模板(about.html,contact.html和home.html)时,出现404错误。 这是我的目录结构(不包括MVC3应用程序的其余部分): 这是我的script.js文件,我在其中定义路由。 这是我的index.htm

  • 我试图在AngularJS中创建一个指令,将HTML拆分为可重用的部分: 应用程序/资产/脚本/产品/指令/产品.js: 但是,找不到模板: < code >错误:[$compile:tpload]无法加载模板:/templates/filter-template . html http://errors.angularjs.org/1.2.20/$compile/tpload?P0 =/temp