我有一个选择框和一个依赖于所述选择框的输入,而不是写入该函数6次(因为这种关系发生了6次)我想将输入ng_model引用传递给ng-Change函数选择框,以便在更改选择框时,该功能可以更新引用的模型
这就是我现在所拥有的:
<select id="name_select" ng-model="name_model" ng-change="getAU_name(type_model,name_model)" ng-selected="name_model" ng-options="user.name as user.name for user in AU_model[type_model]" required></select>
<input id="description_input" ng-model="description_model" disabled></input>
$scope.getAU_name = function (type, name) {
$.each($scope.AU_model[type], function (index, value) {
if (value.name == name || value.description === name) {
console.log("name= " + value.name + " description= " + value.description);
$scope.description_model= value.name;
}
});
但是我有6个单独的关系做同样的事情所以我试图避免使用6个版本的getAU_name来设置$scope.description_model
基本上我有6个模型description_model
,description_model_2
...等我想用相同的函数设置。
答案 0 :(得分:2)
我看到逻辑,你绝对可以简化很多这样的事情。您只需要在函数中传递user
而不是type_model,而您根本不需要控制器中的循环。
您最好创建一个description
对象来容纳所有6个模型。
<select id="name_select" ng-model="name_model" ng-change="getAU_name(user, name_model, 'model1')" ng-selected="name_model" ng-options="user.name as user.name for user in AU_model[type_model]" required></select>
<input id="description_input" ng-model="description.model1" disabled></input>
$scope.getAU_name = function (user, name, model_name) {
if (user.name == name || user.description === name) {
description[model_name] = user.name;
}
};
答案 1 :(得分:0)
为什么要传递模式;如果该模型已经在您的$ scope中?
你可以这样做:
视图:
<input ng-model="stuff" ... >
<a ng-click="mychange();">click</a>
控制器:
$scope.mychange = function(){
$scope.stuff = "newValue";
}
更新:
对不起现在我知道你需要什么,我认为你应该为这个问题编写一个指令,这是我做过的一个例子:
视图:
<div ng-repeat="event in events" data-testd>
<span>{{event.title}}</span>
<a ng-click="clicky(event)">click</a>
</div>
JS:
app.directive("testd", function() {
return function (scope, element, attrs) {
scope.clicky = function(event){
event.title="yolo";
}
}
});