Angularjs 带有动态模板和嵌入的指令
Angularjs directive with dynamic template and transclude
我正在尝试添加动态模板,但遇到了嵌入问题。
这是动态模板函数:
var getTemplate = function(contentType){
var template = '<button style="cursor: pointer;">' + contentType + '<ng-transclude></ng-transclude></button>'
return template;
};
这是调用动态模板和更新嵌入的代码:
element.html(getTemplate(attr.firstname));
transclude($scope.$parent, function (clone, $scope) {
element.children().append(clone);
});
在此处查看完整代码
https://plnkr.co/edit/cQBeiDkEb8KwhrFWb8iR?p=preview
查看控制台我看到这条通知:angular.js:13920TypeError: transclude 不是函数
应包括结果:Go 按钮。
转到此处的按钮代码:
<my-button firstname="John"><button style="cursor: pointer;"><i style="color: green;">Go</i></button></my-button>
请帮我解决一下。
这是我使用的文档:docs
非常感谢。
在 plunkr 中找不到 angular 脚本的路径。更改为 <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
,我看到错误 "angular.js:13920TypeError: transclude is not a function ..."
我已经解决了这个问题。
这是新的示例代码:
HTML代码:
<div ng-controller="MyCtrl">
<my-directive title="nguyen hai dang">
<button>some button</button>
<a href="#">and a link</a>
</my-directive>
</div>
JS 代码:
var myApp = angular.module("myApp",[]);
function MyCtrl($scope) {
$scope.log=[];
}
myApp.directive("myDirective", function(){
return{
restrict: "E",
replace: true,
transclude: true,
scope: {
title: "@"
},
template: "<div class=\"something\" ng-transclude>{{title}} </div>"
};
});
在此处检查代码enter link description here
我正在尝试添加动态模板,但遇到了嵌入问题。
这是动态模板函数:
var getTemplate = function(contentType){
var template = '<button style="cursor: pointer;">' + contentType + '<ng-transclude></ng-transclude></button>'
return template;
};
这是调用动态模板和更新嵌入的代码:
element.html(getTemplate(attr.firstname));
transclude($scope.$parent, function (clone, $scope) {
element.children().append(clone);
});
在此处查看完整代码 https://plnkr.co/edit/cQBeiDkEb8KwhrFWb8iR?p=preview
查看控制台我看到这条通知:angular.js:13920TypeError: transclude 不是函数
应包括结果:Go 按钮。
转到此处的按钮代码:
<my-button firstname="John"><button style="cursor: pointer;"><i style="color: green;">Go</i></button></my-button>
请帮我解决一下。
这是我使用的文档:docs
非常感谢。
在 plunkr 中找不到 angular 脚本的路径。更改为 <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
,我看到错误 "angular.js:13920TypeError: transclude is not a function ..."
我已经解决了这个问题。
这是新的示例代码: HTML代码:
<div ng-controller="MyCtrl">
<my-directive title="nguyen hai dang">
<button>some button</button>
<a href="#">and a link</a>
</my-directive>
</div>
JS 代码:
var myApp = angular.module("myApp",[]);
function MyCtrl($scope) {
$scope.log=[];
}
myApp.directive("myDirective", function(){
return{
restrict: "E",
replace: true,
transclude: true,
scope: {
title: "@"
},
template: "<div class=\"something\" ng-transclude>{{title}} </div>"
};
});
在此处检查代码enter link description here