TemplateUrl指令:AngularJs
是否可以将范围读入指令的templateUrl 我想这样做:TemplateUrl指令:AngularJs,angularjs,angularjs-directive,Angularjs,Angularjs Directive,是否可以将范围读入指令的templateUrl 我想这样做: mDirective.directive('directive', [function () { return { restrict: 'A', scope: { types :'=types' }, templateUrl:'.mytemplate/'+scope.types+'.html' 范围在指令的templateUrl中不可用。github上
mDirective.directive('directive', [function () {
return {
restrict: 'A',
scope: {
types :'=types'
},
templateUrl:'.mytemplate/'+scope.types+'.html'
范围在指令的templateUrl中不可用。github上有此的功能请求: 这里有两个选项(第二个是更通用的选项): 属性:范围不可用。但原始属性是。因此,如果raw属性适用于您,例如,如果它只是一个静态字符串,如下所示:
<div directive types="test1"></div>
templateUrl: function(elem, attrs){ return ('mytemplate/'+attrs.types+'.html')},
但是,如果类型可能发生变化,则这不起作用,因此,可能有更好的解决方案:
ngInclude您可以在ngInclude
源表达式中引用范围变量。因此,我们不使用templateURL
而是使用template
,然后让ngInclude
处理设置/更改模板:
template: '<div ng-include src="\'mytemplate/\'+types+\'.html\'"></div>',
模板:“”,
您还可以手动编译并将模板添加到指令中。但是使用ngInclude
很容易,而且可以启用动画
显示两个选项,并使用两个按钮切换模板,请参见ngInclude
switch