[英]Angular custom directive calling another custom directive
我正在开发一个角度框架,用户可以使用自定义指令配置页眉,菜单,页脚和所选页面。 为了完成这一要求,我需要以下几点。 我在网上看到了示例,但并不能很好地解释它。
要求是,第一个定制指令的templateUrl必须替换为应该调用另一个定制指令的template属性。
以下带有templateUrl的代码可以正常工作。
angular.module("app",[]);
angular.module("app").controller("productController", ['$scope', function ($scope) {
}]);
angular.module("app").directive("tmHtml", function () {
return {
transclude: false,
scope: {
},
controller: "productController",
templateUrl: "/templates/HideShow.html"
};
});
但是,当我如下更改上面的代码时。 我正在进行更改,以便我的自定义指令tmHtml调用另一个自定义指令。
angular.module("app").directive("tmHtml", function () {
return {
transclude: false,
scope: {
},
controller: "productController",
template: ``<hideShow></hideShow>``
};
});
hideShow的新指令编写如下
angular.module("app").directive("hideShow", function () {
return {
tempateUrl: "/templates/HideShow.html"
};
});
没用 我了解我在这里缺少什么。 我找不到。 感谢帮助
尝试使用controllerAs定义控制器:
angular.module("app").directive("tmHtml", function () {
return {
transclude: false,
scope: {
},
controllerAs: "productController",
templateUrl: "/templates/HideShow.html"
};
});
angular.module("app").directive("tmHtml", function () {
return {
transclude: false,
scope: {
},
controller: "productController",
template: ``<hideShow></hideShow>``
};
});
必须替换为
angular.module("app").directive("tmHtml", function () {
return {
transclude: false,
scope: {
},
controller: "productController",
template: "<hide-show></hide-show>"
};
});
在属性template
,添加Html。 因此,您仍然必须在其中使用蛇形保护套,例如在您的HTML文件中
工作代码:
var app = angular.module('plunker', []);
app.controller('productController', function($scope) {
});
app.directive("hideShow", function() {
return {
templateUrl: "hideshow.html"
};
});
app.directive("tmHtml", function() {
return {
transclude: false,
scope: {},
controller: "productController",
template: "<hide-show></hide-show>"
};
});
问题出在hideShow
指令中templateUrl
的拼写。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.