0

我有一个选择框和一个依赖于所述选择框的输入,而不是编写函数 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等,我想设置相同的功能。

4

2 回答 2

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;
    }
};
于 2013-08-27T15:41:53.860 回答
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";             
        }
    }
});
于 2013-08-27T15:49:44.817 回答