1

で選択したオブジェクトを渡して、別のオブジェクトのデータを更新しようとしています。ここにhtmlがあります

  <select id="categoryListBox"
                ng-model="category.selected"
                ng-change="updateCategory(category.selected)"
                ng-options="category._id as category.name for category in categories">
        </select>

これはレンダリングします

<select id="categoryListBox" 
    ng-model="category.selected" 
    ng-change="updateCategory()" 
    ng-options="category._id as category.name for category in categories" 
    class="ng-valid ng-dirty">
    <option value="0" selected="selected">Test4</option>
    <option value="1">Test5</option>
 </select>

ここに私の更新機能があります

$scope.updateCategory = function(){
    console.log('hi');
}

私の問題は、現在、選択したアイテムが変更されたときに updateCategory メソッドが起動しないことです。<select></select>私の $scope.updateCategory メソッドが起動する変更で選択されたオプションがいつでも欲しいです。また、選択したカテゴリをこのメソッドに渡すことができれば最高です。

ここでの更新は、配列カテゴリを設定する私の初期化です

$scope.init = function (){
            console.log('dfakjsdhf');
            console.log(apiUrl);
            $scope.category = {};
            $scope.subcategory = {};
            //$scope.categories = {_id: 1, name:'test'};

            $http({ method: 'GET', url: apiUrl + '/categories'}).
                success(function (data, status, headers, config) {
                    $scope.categories = data;
                    console.log($scope.categories);

                }).
                error(function (data, status, headers, config) {
                    console.log('error');
                });


        };
4

2 に答える 2

0

関数で category.selected を渡す必要はありません。あなたのjsコントローラーでは、それはあなたのスコープ内にあります.updateCategory()関数でそれを使用してください.

JSFiddle

HTML:

<select id="categoryListBox"
            ng-model="category.selected"
             ng-change="updateCategory()"
            ng-options="category.id as category.name for category in categories">
    </select>

JS:

$scope.updateCategory = function(){
    alert($scope.category.selected);
}
于 2014-01-21T19:12:24.573 に答える
0

ng-model を別の名前に変更するだけcategory.selectedです。私の理解によると、あなたのコードでは ng-optionsカテゴリと ng-modelカテゴリの間にあいまいさがあります

<select id="categoryListBox"
            ng-model="categorymodel"
            ng-change="updateCategory(categorymodel)"
            ng-options="category.id as category.name for category in categories">
    </select>

デモ

于 2014-01-21T19:53:17.940 に答える