我試圖用NG-選項來創建一個下拉列表:Object.keys()在NG選項不工作
<!DOCTYPE html>
<html ng-app="m1">
<head>
<script src='https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.min.js'></script>
</head>
<body ng-controller="c1">
<div>
Sort1
<select ng-model="sortKey1">
<option value="bookId">By Id</option>
<option value="bookTitle">By Title</option>
<option value="cost">By Cost</option>
</select>
</div>
<div>
Sort2
<select ng-model="sortKey2" ng-options="x for x in Object.keys(books[0])">
</select>
</div>
<div>
Sort3
<select ng-model="sortKey3" ng-options="x for x in bookKeys">
</select>
</div>
</body>
<script type="text/javascript">
var m1 = angular.module("m1", []);
m1.controller('c1',function($scope)
{
$scope.books = [
{
"bookId": 101,
"bookTitle": "Angular JS",
"cost":375,
},
{
"bookId": 102,
"bookTitle": "Instant AngularJS Starter",
"cost":150,
},
{
"bookId": 103,
"bookTitle": "Ng-Book: The Complete Book on AngularJS",
"cost":4657,
}];
console.log(Object.keys($scope.books[0]));
$scope.bookKeys = Object.keys($scope.books[0]);
});
</script>
</html>
我試圖通過調用Object.keys()
擺脫對象的鍵下拉值一個對象,然後使用ng-options
中的結果數組。
我想創建案例1的效果。我在案例2的嘗試不起作用,然而在案例3中實施的類似事件正在起作用。
有人可以告訴爲什麼情況2不工作?
太棒了!但爲什麼'Object.keys()'不起作用? –
您會發現表達式中的JavaScript函數的Angular支持有時會受到限制。這似乎是其中的一例。 – Lex
你可以添加這個答案嗎?另外,我在你的答案中增加了一些內容。只是驗證它是否正確,因爲我不是一個角度專家。 –