将ng模型值传递给对象

时间:2015-11-24 14:51:42

标签: javascript angularjs

我有一个用ng-repeat和选项制作的列表。我正在尝试这样做,以便当我单击一个选项时,选择的值将传递给一个对象。

<select id="selectvak" name="selectvak" class="form-control" multiple="multiple" >
    <option value="1" ng-repeat="t in klas" ng-model="vakselect">{{ t.Name }}</option>
</select>

$scope.user = {
vak: klas.vakselect,
};

我对Angular有一点经验,所以我不确定如何让它正常工作。

编辑:

我调整了我的代码,user.vak似乎抓住了selectvak字段,但现在将其作为数组传递。我如何使它成为$ scope.user中的字符串?因此,每当我记录用户时,我都会看到一串vak,然后是一系列学生。

<select id="selectvak" name="selectvak" class="form-control" multiple="multiple" ng-model="user.vak" ng-options="t.Name as t.Name for t in klas" ng-click="getJSON1()">


 $scope.user = {
vak: '',
// klas: klasselect,
student: [$scope.student] -1
};

3 个答案:

答案 0 :(得分:0)

实际代码是这样的:(并且在控制器内部无需做任何事情。

<select id="selectvak" name="selectvak" class="form-control" multiple="multiple"  ng-model="user.vak">
    <option value="1" ng-repeat="t in klas">{{ t.Name }}</option>
</select>

您应该使用ng-options代替ng-repeat来创建选项 https://docs.angularjs.org/api/ng/directive/ngOptions

答案 1 :(得分:0)

TLJ和Arnaud是正确的。 但是,在选择标记中回答您的初始问题,而不是ng-model="vakselect"只使用ng-model="user.vak"。 然后,当选择的值更改时,user.vak的值将自动更改。

答案 2 :(得分:0)

单击该选项时,会将t.name添加到数组中。看一下控制器功能和部分中的ng-click。

  <select id="selectvak" name="selectvak" class="form-control" multiple="multiple" >
        <option value="1" ng-repeat="t in klas" ng-click="add(t.Name)" ng-model="vakselect">{{ t.Name }}</option>
    </select>

    var string_option;
    $scope.add = function(t) {
        string_option = t; 
        console.log(string_option )
    }