[英]Angular Directive, argument not beign read and console.log not working
我正在尝试使该指令有效,目标是读取菜单文本以显示的JSON对象,根据该选项卡,选项卡将填充其他指令。
的HTML
<lista-tabs myMenues="general.sectionsList"></lista-tabs>
JS
app.directive('listaTabs', function() {
return {
restrict: 'E',
scope: {
myMenues: '@',
},
link: function(scope, element, attrs) {
console.log("Inside link function");
console.log(myMenues);
},
};
});
其他指令也可以。 我需要分析该JSON对象,并根据它组装菜单,一旦我开始工作就不会有问题。 但是console.log没有显示任何内容,甚至没有显示纯文本。 警报方法可以正常工作。
我已经安装了用于phonegap的console.log插件,并且可以在项目的其他部分工作。
顺便说一句:我正在用tw bootstrap进行phonegap。
提前致谢!
所有的角度指令都必须用短划线分隔,并且我从您的代码中了解到,您希望将此对象绑定到一个对象而不是字符串,您也要在myMenues attr上使用作用域,这里是工作示例:
var app = angular.module('stack', []); app.controller('MainCtrl', function($scope) { $scope.general = { sectionsList: 'someText' } }); app.directive('listaTabs', function() { return { restrict: 'E', scope: { myMenues: '=', }, link: function(scope, element, attrs) { console.log("Inside link function"); alert(scope.myMenues); }, }; });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script> <body ng-app="stack" ng-controller="MainCtrl"> <lista-tabs my-menues="general.sectionsList"></lista-tabs> </body>
指令的属性(在HTML中) 遵循相同的角度归一化 。 这意味着它们必须与指令名称一样用短划线分隔。
<lista-tabs my-menues="general.sectionsList"></lista-tabs>
另一个需要注意的是,在链接函数中,您引用的变量myMenues
并未在任何地方定义。 请记住, myMenues is a property of your
object you defined above. You should be using
myMenues is a property of your
范围object you defined above. You should be using
myMenues is a property of your
object you defined above. You should be using
object you defined above. You should be using
scope.myMenues`。
最后,您当前正在使用@
绑定,该绑定旨在绑定到DOM字符串。 如果确实需要对象,则需要使用双向=
绑定或单向表达式绑定( &
)。 有关指令定义,请参见文档 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.