2
我似乎无法将我的想法包括在我如何解决这个问题中。我有一个指令,它看起来如下:AngularJS将一个属性值作为参数传递给一个函数,该函数被ng-change所调用
.directive('seqWidget', ['Sequence', function(Sequence){
return {
restrict: 'E',
scope: {
placeholder: '@',
option: '@'
},
template: '<fieldset><legend data-ng-transclude></legend><input type="text" placeholder = {{placeholder}} autofocus data-ng-model="index" data-ng-change="retrieve({{option}});"/>{{output}}</fieldset>',
replace: true,
transclude: true,
link: function ($scope, $elem, $attr){
$scope.retrieve = function(key){
//var option = $attr.option;
console.log(key);
}
}
}
}]);
我的HTML是这样的:
<seq-widget placeholder="Index 0-400" option="accurate">Which index number would you like to gain accuracy on?</seq-widget>
我试图完成基于属性改变我的函数调用的动态方式等几种方式值。我会使用'&'前缀,但我希望此功能在输入发生更改时被触发。有没有一种实际的方式来实现我想要做的事情?或者是否需要使用jQuery来说出类似于$('input')的内容。on('change',function(){});在我的链接功能?
即使在我从“retrieve()”中删除“option”作为参数并且在我的console.log($ scope.option)中执行了操作后,我仍然得到了“undefined”的控制台日志$ scope.retrieve函数定义在我的指令的链接函数中,就像你演示的一样。 – papiro 2014-10-19 00:07:55
你可能做错了,检查这个http://plnkr.co/edit/X1LnFy?p=preview – PSL 2014-10-19 00:10:16
,而且,为了访问option属性的值(在这种情况下是“准确的”),我相信你必须使用插值作为准确变得可用作为字符串...就像中的“占位符”的值被插入到模板的新占位符属性中一样。 –
papiro
2014-10-19 00:11:40