javascript
  • angularjs
  • 2014-12-02 50 views 0 likes 
    0

    我正在使用角js。我想从表中的一行内的输入中获取值。从html表中的指令中获取值

    下面有一个输入元素。当我点击按钮(添加)我需要得到该特定行的值。

    视图

    <tr ng-click="" ng-repeat='customer in customers | filter:query | orderBy: sort.field : sort.order'> 
    
         <td ng-repeat='field in fields'> 
          {{customer[field]}} 
         </td> 
         <td mult-ecs> 
          <p class="input-group"> 
           <span class="input-group-addon">Rs</span> 
           <input class="form-control" name="debit" type="text" ng-model="customer['id'].value"> 
          </p> 
          <button ng-click="addMulEcs(customer['id'])" class="btn btn-primary btn-sm" >Add</button> 
          <button ng-click="removeMulEcs(customer[id])" class="btn btn-danger btn-sm" >Remove</button> 
         </td> 
        </tr> 
    

    控制器表 enter image description here

    +0

    尝试添加jsfiddle或类似软件。或至少提供样本客户数据。 – dotnetstep 2014-12-02 08:04:34

    +0

    你可以参考表格的图片。在行中有一个输入元素以及添加按钮 – 2014-12-02 08:08:33

    +0

    可以发布一个客户json的例子吗? – 2014-12-02 08:19:08

    回答

    0

    你可以参考通过结合它的指令范围控制器范围的变量

    .directive('multEcs', ['$http', function($http){ 
        return{ 
         restrict: 'A', 
         replace:false, 
         scope:{ 
         }, 
         link: function(scope, elem, attr){ 
          scope.addMulEcs = function(id){ 
    
          } 
         } 
        } 
    
    
    }]); 
    

    图像。 在你的情况下,我认为one way binding只是适合你的情况。

    在你的指令设置:

    scope:{ 
          localEcsValue : "@ecsValue" 
        }, 
    

    而且在你的模板:

    <td mult-ecs ecs-value="customer['id'].value"> 
    

    这将在控制器绑定scope.localEcsValuecustomer['id'].value

    而在link功能,你可以这样做:

    scope.addMulEcs = function(id){ 
          alert(scope.localEcsValue()) 
         } 
    

    小心使用ng-model内部指令。作为指令将创建隔离的范围,并导致ng模型不绑定到正确的变量。 check this for more info

    相关问题