Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 通过给json对象命名,将计算出的ng模型添加到json对象中_Angularjs_Json - Fatal编程技术网

Angularjs 通过给json对象命名,将计算出的ng模型添加到json对象中

Angularjs 通过给json对象命名,将计算出的ng模型添加到json对象中,angularjs,json,Angularjs,Json,我有一个奇怪的问题 在我看来,我已经做到了 <td> <input ng-model="ca_mta_drive_min()" class="form-control" placeholder="Exemple : 2 500 000" ui-money-mask="0" disabled> </input> </td> 它工作得很好,但问题是

我有一个奇怪的问题

在我看来,我已经做到了

<td>
    <input ng-model="ca_mta_drive_min()"
           class="form-control"
           placeholder="Exemple : 2 500 000"
           ui-money-mask="0"
           disabled>
    </input>
</td>
它工作得很好,但问题是我必须用计算值ca_mta_drive_min更新json对象练习曲。。。不知道你是否明白我的意思,我需要把这个发送到后端

让你明白;我需要我的视图来做这样的事情(注意它是一个值,而不是一个函数:

<td>
    <input ng-model="ca_mta_drive_min"
           class="form-control"
           placeholder="Exemple : 2 500 000"
           ui-money-mask="0"
           disabled>
    </input>
</td>

因为我的对象练习曲中有很多东西,但我不知道如何将计算出的值放入其中?我尝试过改变,但这不是真正的问题

最后,我用$http将etude对象发送到后端,但是我如何将计算出的值推送到名为“etude”的json中呢


在使用$http发送之前,我不想调用每个函数,我希望有一个链接到HTML输入的“附加ng模型”可以自动更新。

首先,您需要了解,如果使用函数作为ng模型,那么您需要使用
ng模型选项=“{getterSetter:true}”
。这样,angular知道如何调用getter/setter函数。该函数的签名也需要遵循约定,如下所示:

吸气剂/塞特 如果你试图在getter/setter中影响从该计算中提取一个值,你可能会触发另一个调用函数的摘要循环,该函数计算另一个值,从而创建一个无休止的摘要循环。Angular可能会对此抱怨,并用一个错误将你踢出循环

ng型号选项
docs-

保持简单
最好为
ng模型
插入一个正常的var,然后使用
ng change
在控制器上调用一个计算函数。您可能还希望在其中插入一些逻辑,以防止在模型没有更改的情况下进行计算。我不确定angular通过
ng change提供什么样的安全性e> 但是我想如果您更改了模型值,然后在摘要周期内返回到其原始值,它仍然会启动一个更改。

为什么要将
方法
放在
ng model
中,请尝试使用
ng change
方法,如果仍然要使用,请检查以下内容:谢谢,我正在尝试更改,但没有输入然后不显示任何内容。需要使用类似以下内容放置对象:
ng model=“xyz”ng change=“ca\u mta\u drive\u min()”
问题是,正在更改的值不是此输入的值,而是来自其他输入的值,因此它不起任何作用。非常感谢,它终于起作用了,我将我的ng模型放置在其他输入上,在每个函数中,我不再返回,但我正在这样设置变量:$scope.ca\u mta\u internet_change=function(){$scope.etude.ca_mta_internet=$scope.etude.foyer_zone*$scope.etude.achat_internet*((parseInt($scope.etude.ca_eomini)+parseInt($scope.etude.ca_eomaxi))/2)*$scope.etude.ca_系数}非常感谢,我会尝试。但问题是,我需要同时在其他几个HTML输入上编写ng change,以便它们启动计算函数,并且有很多基于这些其他输入的计算函数。好的,所以我现在使用ng change,但我必须在其中启动25个不同的函数!你认为我太多了?它在视图中看起来不太好!如果看不到完整的控制器代码和所有25个计算,我不能说。我已经不再使用控制器进行大量计算,而是使用过滤器。我的应用程序中有几十个过滤器。这取决于你的需要。如果它是只读类型的计算,那么如果计算是异步的,或者需要一种不太直接的方法,那么就使用控制器函数。
<td>
    <input ng-model="ca_mta_drive_min"
           class="form-control"
           placeholder="Exemple : 2 500 000"
           ui-money-mask="0"
           disabled>
    </input>
</td>
var _privateVar = ...
$scope.getterSetterFunc = function( val ){ 
    if( val ) _privateVar = val
    else return _privateVar
}