Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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
Angularjs 动态模板取决于下拉式用户选择_Angularjs_Angularjs Directive_Angularjs Scope_Angularjs Ng Include - Fatal编程技术网

Angularjs 动态模板取决于下拉式用户选择

Angularjs 动态模板取决于下拉式用户选择,angularjs,angularjs-directive,angularjs-scope,angularjs-ng-include,Angularjs,Angularjs Directive,Angularjs Scope,Angularjs Ng Include,尝试使用应根据用户选择而更改的动态模板 因此,当选择一个下拉选项时,请加载另一个html模板 我喜欢用一个可以单独测试的控制器以一种模块化的方式干净地完成这项工作 我一直在读这个 其他包括使用 ng include加载模板 有人知道更好的实现方法吗?您可以在指令中使用$templateCache和$compile。这并不总是一个更好的方法,取决于你想要实现什么 link: function (scope, element, attrs) { $templateCache.get('yo

尝试使用应根据用户选择而更改的动态模板

因此,当选择一个下拉选项时,请加载另一个html模板

我喜欢用一个可以单独测试的控制器以一种模块化的方式干净地完成这项工作

我一直在读这个

其他包括使用
ng include
加载模板


有人知道更好的实现方法吗?

您可以在指令中使用$templateCache和$compile。这并不总是一个更好的方法,取决于你想要实现什么

link: function (scope, element, attrs) {
    $templateCache.get('yourtemplate.html').then(function(tmpl) {
        element.html(tmpl);
        $compile(element.contents())(scope);
    });
}

你明白了:你也可以让一个指令作为其他指令的代理,不使用$templateCache,直接向元素中添加另一个指令的标记(并编译它)。

还有其他想法吗?