将文本输入绑定到指令属性

时间:2014-04-21 13:59:07

标签: javascript angularjs

我正在尝试将文本输入绑定到指令中的属性,原因是我不想每次添加此类型的新指令时都要引入控制器。这是否可行,或者在使用ng-model时总是必须指定控制器。代码示例胜过千言万语,请查看http://codepen.io/scottwio/pen/HKqiw。当您输入输入时,金额应该更改。

1 个答案:

答案 0 :(得分:1)

您的代码存在两个问题:

  1. scope.$watch(attrs.amount, function (v) {...});< =>
    scope.$watch('100', function (v) {...});
    这永远不会改变,所以不能做你想做的事。

  2. 由于elements属性永远不会改变,function draw(aniTime) { var amount = attrs.amount;不是那么有用。


  3. 您可以像这样修理它们:

    scope.$watch('amount', function (v) {...});
    

    function draw(aniTime) {
        var amount = scope.amount;
        ...
    

    另请参阅此 short demo


    <子> 如果要与父作用域共享指定的数量,则需要设置双向数据绑定并在父作用域中指定要绑定的属性。 E.g:

    // Parent scope
    $scope.someAmount = 100;
    
    // In HTML
    <custommarc amount="someAmount" ...
    
    // In directive
    scope: {
        amount: '='
        ...