AngularJS用带有函数调用的表达式替换文本框值

时间:2016-02-24 10:35:48

标签: angularjs angularjs-directive angularjs-scope angularjs-ng-repeat

我有一个Angular表单,其中ng-repeat用于创建多个TD,每个TD元素都包含一个文本框,其值我想使用带参数的函数调用进行修改。我在数组中保存值,并希望从那里选择一个值并放入textbox元素。

<div ng-controller="MyController" ng-form id="myForm" name="myForm">
    <table>
        <tr>
            <td ng-repeat="myObject in arrayOfObjects">
                <input type="text" ng-???="{{ myFunctonCall(myObject.Property) }}" />
            </td>
        </tr>
    </table>
</div>

是否有标准的ng指令,或者可以使用格式化程序,解析器来实现?

2 个答案:

答案 0 :(得分:0)

as @Deblaton Jean-Philippe说你可以用ng-model来阅读数据

<input type="text" ng-model="myinitialvalue" />

然后按照您想要的方式在控制器中处理它:

$scope.$watch('myinitialvalue' function(newval, oldval){
  //newval is equal to value of myinitialvalue
  //here we modify it and assign to myvar, here for example we just add 'abc' to it
  $scope.myvar = newval + 'abc';
});

和角度模板语法{{myvar}},以便在textarea或其他地方显示该页面:

<textarea>{{myvar}}</textarea>

答案 1 :(得分:0)

您可以使用ng-init初始化ng-repeat的每个子范围内的范围值。这些值不会与父控制器共享,其中定义了arrayOfObjects。

https://docs.angularjs.org/api/ng/directive/ngInit
(如文档中所述,不要使用太多的ngInit)

<div ng-controller="MyController" ng-form id="myForm" name="myForm">
    <table>
        <tr>
            <td ng-repeat="object in arrayOfObjects">
                <input type="text" 
                       ng-init="value = myFunctionCall(object.Property);" 
                       ng-model="value" />
            </td>
        </tr>
    </table>
</div>