从模板编译后,是否可以动态关联控制器?
//Controller /path/ctrl/MainCtrl.js
angular.module('app')
.controller('MainCtrl', function () {
});
//Directive /path/dir/myDir.js
function link(scope, element, attrs) {
$templateRequest('path/oneTpl.tpl').then(function (html) {
$compile(element.html(html).contents())(scope);
//How can I do to dynamically inject MainCtrl into the oneTpl.tpl template using the path (/path/ctrl/MainCtrl.js)?
});
}
答案 0 :(得分:1)
您可以尝试向已编译的模板添加属性(很高兴知道,模板的确切含义)。
请尝试以下代码:
element.setAttribute(name, value);
示例:
<button>Hello World</button>
var b = document.querySelector("button");
b.setAttribute("disabled", "disabled");
所以你只需要一个模板的标识符,例如id或class an然后设置你的属性。
JQuery:$('#yourTemplate').setAttribute('ng-controller','yourController' );
如果这对您没有帮助,也许以下主题可以帮助您: