Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TemplateUrl指令:AngularJs_Angularjs_Angularjs Directive - Fatal编程技术网

TemplateUrl指令:AngularJs

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上

是否可以将范围读入指令的templateUrl

我想这样做:

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