2017-06-19 8 views
0

私は角度で、この配列があります。AngularJsのng-modelが値を選択しないのはなぜですか?

$scope.skins = [ 
    { code : "default", name : "DEFAULT_TXT" }, 
    { code : "aero", name : "AERO_TXT" }, 
    { code : "navy", name : "NAVY_TXT" }, 
    { code : "facebook", name : "FACEBOOK_TXT" }, 
    { code : "turquoise", name : "TURQUOISE_TXT" }, 
    { code : "lime", name : "LIME_TXT" }, 
    { code : "green", name : "GREEN_TXT" }, 
    { code : "purple", name : "PURPLE_TXT" }, 
    { code : "white", name : "WHITE_TXT" }, 
    { code : "concrete", name : "CONCRETE_TXT" }, 
    { code : "watermelon", name : "WATERMELON_TXT" }, 
    { code : "lemonade", name : "LEMONADE_TXT" } 
] 

をそして私はNG-オプションで選択オプションを作成しています。私はいくつかの値でngモデルを設定しましたが、それを選択しません。私は間違っている?ここで

はあなたNG-モデルはオブジェクトに結合するので、それはこの

$scope.opts = {}; 

track byを削除...

Demo

答えて

2

ようにする必要がありJSFiddle

+0

によってトラックを必要としています。配列の中に 'defSkin'を入れる必要はありません。あなたはそれをそのまま残すことができ、それはまだ動作します。 – oded

3

完全な例でありますリストでは、 'code'プロパティではなく、このjavascriptコードを試してみてください。

app = angular.module("myApp", []); 

app.controller('myCtrl', function ($scope, $http) { 
    var defSkin = { code: "white", name: "WHITE_TXT" }; 
    $scope.skins = [ 
     { code: "default", name: "DEFAULT_TXT" }, 
     { code: "aero", name: "AERO_TXT" }, 
     { code: "navy", name: "NAVY_TXT" }, 
     { code: "facebook", name: "FACEBOOK_TXT" }, 
     { code: "turquoise", name: "TURQUOISE_TXT" }, 
     { code: "lime", name: "LIME_TXT" }, 
     { code: "green", name: "GREEN_TXT" }, 
     { code: "purple", name: "PURPLE_TXT" }, 
     defSkin, 
     { code: "concrete", name: "CONCRETE_TXT" }, 
     { code: "watermelon", name: "WATERMELON_TXT" }, 
     { code: "lemonade", name: "LEMONADE_TXT" } 
    ] 

    $scope.opts = []; 
    $scope.opts.sidebarSkin = defSkin; 

}); 
+0

私はそれが働い – oded

1

$ scope.optsはオブジェクトではありませんあなたが特定の値を選択するために、NG-選択を使用することができ、アレイ、

$scope.opts = {}; 

DEMO

0

です。 demo

<div ng-app="myApp"> 
     <div ng-controller="myCtrl"> 

     <select class="form-control" ng-model="opts.sidebarSkin" name="sidebarTemplate" ng-options="skin.code as skin.name for skin in skins" ng-selected="code == opts.sidebarSkin"> 

     </select> 
     </div> 
    </div> 

角度のJsコード

app = angular.module("myApp", []); 

app.controller('myCtrl', function($scope, $http) { 

     $scope.skins = [ 
     { code : "default", name : "DEFAULT_TXT" }, 
     { code : "aero", name : "AERO_TXT" }, 
     { code : "navy", name : "NAVY_TXT" }, 
     { code : "facebook", name : "FACEBOOK_TXT" }, 
     { code : "turquoise", name : "TURQUOISE_TXT" }, 
     { code : "lime", name : "LIME_TXT" }, 
     { code : "green", name : "GREEN_TXT" }, 
     { code : "purple", name : "PURPLE_TXT" }, 
     { code : "white", name : "WHITE_TXT" }, 
     { code : "concrete", name : "CONCRETE_TXT" }, 
     { code : "watermelon", name : "WATERMELON_TXT" }, 
     { code : "lemonade", name : "LEMONADE_TXT" } 
     ] 

     $scope.opts = {}; 
     $scope.opts.sidebarSkin = "white"; 

    }); 
関連する問題