2015-06-13 171 views
0

我遇到了angular.js 1.4.0的問題。如果我使用「數字」,我不能在選擇標記中設置默認值,但如果使用「字符串」,它將起作用。 select語句是視圖中的硬編碼。我已經在控制器中初始化了我的模型。無法在選擇標記中設置默認選定選項

//這不起作用,值通過'數字' $ scope.colors = 2;

//這將工作,傳遞的值是'字符串' $ scope.colors ='2';

VIEW /型號:

<div ng-app="app"> 
    <div ng-controller="MyController"> 
    <select ng-model="colors"> 
     <option value="1">Red</option> 
     <option value="2">Blue</option> 
     <option value="3">Green</option> 
    </select> 
    <p>Selected Color: {{colors}}</p> 
    <div ng-switch="colors"> 
     <p ng-switch-when="1"><span class="red-block"></span></p> 
     <p ng-switch-when="2"><span class="blue-block"></span></p> 
     <p ng-switch-when="3"><span class="green-block"></span></p> 
    </div> 
</div> 

控制器:

angular.module('app', []).controller('MyController', function($scope) { 
    /* angular.js version 1.4.0 issue: 
     $scope.colors = 2; --> will not work 
     $scope.colors = '2'; --> will work 

     This is working on angular.js version 1.3.15 
    */ 
    $scope.colors = 1; 
}); 

如果我使用angular.js版本1.3.15,這兩個 '號' 和 '串' 會工作。

注意:在codepen中設置的角度版本是1.4.0,所以你可以看到錯誤。

http://codepen.io/joemalski/pen/YXQMKO?editors=001

+0

那麼問題是什麼? – Freezystem

+0

我想我的問題是,我想知道是否有一個像angular.js 1.3.15版本那樣的工作,我不需要檢查我在$ scope.colors中傳遞的值是否它是一個'數字'或'字符串'。 – joemalski

回答

0

JS:

$scope.options = [{ name: "a", id: 1 }, { name: "b", id: 2 }]; 
$scope.selectedOption = $scope.options[1]; 

HTML:

<select data-ng-options="o.name for o in options" data-ng-model="selectedOption"></select> 

這將離開 「B」 項被選中。

+0

謝謝。我想我只需要使用ng選項。 – joemalski

0

好,而不是有一個靜態選擇/選項使用動態之一:

$scope.colors = ["red","blue","green"]; 

在你的HTML

<select ng-model="selectedColor" ng-option="color in colors"></select> 

<div ng-switch="selectedColor"> 
    <p ng-switch-when="red"><span class="red-block"></span></p> 
    <p ng-switch-when="blue"><span class="blue-block"></span></p> 
    <p ng-switch-when="green"><span class="green-block"></span></p> 
</div> 

使用字符串像這樣你就安全了。

+0

有關此問題的其他信息,https://github.com/angular/angular.js/blob/master/CHANGELOG.md#140-beta0-photonic-umbrakinesis-2015-01-13 – joemalski