我有以下指令:
buttons[i] = ((Buttons) findViewById(resID));
由于我需要根据页面使用它更改标题,我想如果我可以在DOM中做这样的事情:
的index.html
(function() {
'use strict';
function header() {
return {
templateUrl: '/app/home/homeheader.html'
};
}
angular.module('app').directive('appheader', header);
})();
signUp.html
<appheader page="index"></appheader>
...
然后在指令中,分配我想要的模板。
我在网上看了一些,但我找不到任何解决方案。有这样的
答案 0 :(得分:1)
你可以将一个函数传递给templateUrl
,检查page
属性,让你的想象力变得疯狂!
查看Creating Custom Directives文档。
这是一个让你入门的例子:
(function() {
'use strict';
function header() {
return {
templateUrl: function(elem, attrs) {
// check the attribute value
if (attrs.page === "home") {
return '/app/home/homeheader.html';
} else {
return '/app/home/signupheader.html';
}
// OR use the attribute value as part of the template
return '/app/home/' + attrs.page + 'header.html';
}
};
}
angular.module('app').directive('appheader', header);
})();
答案 1 :(得分:0)
templateUrl
可以是一个函数。
the docs中给出的示例是这样的:
angular.module('docsTemplateUrlDirective', [])
.controller('Controller', ['$scope', function($scope) {
$scope.customer = {
name: 'Naomi',
address: '1600 Amphitheatre'
};
}])
.directive('myCustomer', function() {
return {
templateUrl: function(elem, attr) {
return 'customer-' + attr.type + '.html';
}
};
});