我对Angular很新,并且有这样的表格(大约15个输入和选择):
<div id="configForm" data-ng-controller="seutpController">
<form name="configForm" data-ng-submit="update()" novalidate>
<input id="id" type="hidden" data-ng-model="config.id" />
<input id="company" type="text" data-ng-model="config.company" data-ng-blur="test()"/>
<input id="street" type="text" data-ng-model="config.street" data-ng-blur="test()" />
</form>
<input type="submit" />
</div>
在提交时进行AJAX调用,使用配置对象中的所有值更新数据库。没什么大不了的。
进行AJAX调用(模糊),但我只想发送用户更改的一个键/值对,如:
$http({
url: 'api/setConfig.php',
method: 'POST',
data: {'company': 'value'}
})
我是否必须将$ event作为函数参数发送,例如ng-blur =&#34; test($ event)&#34;从那里获取元素ID和值?
谢谢@ all!
是否可以使用$ watchCollection并在$ scope.config对象上观看?
答案 0 :(得分:1)
我认为发送$ event可能是最好的,因为这将是最可扩展的解决方案。我过去做过类似的事情:
<input name="title" ng-blur="ctrl.onFieldChanged($event)" type="text" ng-model="ctrl.title"/>
在我的方法中,为了方便起见,我将输入命名为与其绑定的ng-model相同的名称。在控制器中,这就是我所做的:
this.onFieldChanged = function ($event) {
var data = {};
data[$event.currentTarget.name] = self[$event.currentTarget.name];
$http({
url: '...',
method: 'POST',
data: data
});
};
希望这有帮助。
答案 1 :(得分:0)
在视图中
onblur=test(config.company,'name')
在控制器中
$scope.test = function(value,name){
$http({
url: '...',
method: 'POST',
name: value
});
希望有所帮助