2015-06-13 170 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