使用ng-options时,ng-model范围不可用

时间:2016-09-16 10:01:06

标签: javascript angularjs angularjs-ng-options

我只是想实现一个简单的下拉菜单,这是我的代码

<select ng-change="selectTestSuite();" ng-model="testCase" ng-options="testSuite.TEST_NAME for testSuite in publicTestCase"></select>

在控制器中,当我尝试在控制台中打印testCase的值时,它给出了undefined。但是当我尝试使用

打印testCase的id时
{{testCase.TEST_ID}}

它给了我身份证明。我还使用$ watch

进行了检查
$scope.$watch('testCase',function() {
   console.log($scope.testCase);
});

无法弄清楚我在哪里犯错误。感谢任何帮助。

3 个答案:

答案 0 :(得分:0)

我认为ng-options没问题。

实际上ng-options映射了&#34; testSuite.TEST_NAME&#34;作为ng-model的模型。

确保&#34; testSuite.TEST_NAME&#34;可以在&#34; publicTestCase&#34;集合(是否未定义)。

答案 1 :(得分:0)

您正在将testCase绑定到testSuite.TEST_NAME。 您的ng选项应如下所示:

<select ng-change="selectTestSuite()" ng-model="testCase" ng-options="testSuite as testSuite.TEST_NAME for testSuite in publicTestCase"></select>

模型从publicTestCase数组中的记录绑定到testSuite的值,并且对于每个testSuite,您希望testSuite.TEST_NAME显示为选项文本。

答案 2 :(得分:0)

enter image description here

注意: - 请找到图片link.image包含代码 ng-repeat指令为数组中的每个项重复一段HTML代码,它可用于在下拉列表中创建选项,但ng-options指令专门用于填充带有选项的下拉列表,并且至少具有一个重要的优势:

使用ng-options进行的下拉菜单允许选定的值为对象,而ng-repeat的下拉列表必须是字符串。