如何在AngularJS指令模板中动态定义要使用ng点击调用的函数
|
我正在尝试动态生成表单输入和基于模型的关联动作菜单.我可以传递要使用的字段和菜单,但是我无法弄清楚如何配置ng-click以调用模型中定义的相应函数.看到小提琴:
http://jsfiddle.net/ahonaker/nkuDW/ HTML: var myApp = angular.module('myApp',[]);
myApp.directive('myDirective',function($compile) {
return {
restrict: "E",replace: true,scope : {
field: '=',label: '=',menu: '='
},link: function (scope,element,attrs) {
element.html('{{label}}: <input ng-model="field"> <ul ng-repeat="item in menu"<li><a ng-click="item.func">{{item.title}}</a></li></ul>');
$compile(element.contents())(scope);
}
}
});
//myApp.factory('myService',function() {});
function MyCtrl($scope) {
$scope.status = 'You have not picked yet';
$scope.menu = [
{ "title" : "Action 1","func" : "ActionOne()"},{ "title" : "Action 2","func" : "ActionTwo()"},]
$scope.fieldOne = "I am field 1";
$scope.fieldTwo = "I am field 2";
$scope.ActionOne = function() {
$sopce.status = "You picked Action 1";
}
$scope.ActionOne = function() {
$sopce.status = "You picked Action 2";
}
}
JS: <div ng-app = "myApp">
<div ng-controller="MyCtrl">
<ul>
<p><my-directive field="fieldOne" label="'Field 1'" menu="menu"></my-directive></p>
<p><my-directive field="fieldTwo" label="'Field 2'" menu="menu"></my-directive></p>
</ul>
Hello,{{status}}!
</div>
</div>
任何帮助将不胜感激.我在该指令中尝试过以下ng-click方法 ng-click={{item.func}}
ng-click="item.func"
ng-click="{{item.func}}"
我究竟做错了什么?还是有更好的方式来做这个(包括要调用的函数的菜单结构必须来自模型,以便我构建一个通用表单生成功能).
这是你的固定小提琴:
http://jsfiddle.net/nkuDW/1/
有很多问题. >你的打字错误为$sopce的4倍. > ActionOne不存在作为MyCtrl里面的一个功能,而是需要被引用为$scope.ActionOne 在进入Angular之前了解JavaScript的基础知识可能是个好主意,因为Angular假设您对语言的细微差别有了很好的了解.道格拉斯·克罗克福德有一个series of videos可以让你开始. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
