【发布时间】:2016-01-28 19:30:48
【问题描述】:
我正在使用 angular 并尝试使用我已经设法完成的对象数组填充 html 选择元素。我要做的下一件事是使用代表选项文本(不是值)的 $scope 变量设置选定对象,以便绑定。
var egApp = angular.module("egApp", []);
egApp.controller('ExampleCtrl', function($scope){
/*
$http.get('getLanguages.php')
.success(function(response){
$scope.Languages = response;
});
*/
$scope.Languages = [
{"id":"1", "name":"Java"},
{"id":"2", "name":"Python"},
{"id":"3", "name":"PHP"},
{"id":"4", "name":"SQL"}
];
/*
$http.get('getCode.php', {"params": {"CodeId": myCodeId}})
.success(function(response){
$scope.info = response;
});
*/
$scope.info = {
"id": "3",
"lang": "PHP",
"title": "hello world",
"content": "\<?php\n\techo \"hello world\";\n?\>"
};
});
<div ng-app="egApp" ng-controller="ExampleCtrl">
<label>Id:</label><input type="text" ng-model="info.id" readonly/><br />
<label>Title:</label><input type="text" ng-model="info.title" /><br />
<label>Language:</label><select
ng-model="info.lang"
ng-options="L.name for L in Languages track by L.id"></select><br/>
<textarea>{{info.content}}</textarea>
</div>
这是我为更好地说明我想要做的事情而制作的 jsfiddle 的链接 https://jsfiddle.net/jpsh/ke2abu1t/
我所需的结果是“PHP”将是所选文本,当所选项目更改时,它将将$ scope.info.lang设置为所选选项文本。
【问题讨论】:
-
您没有通过 id 进行跟踪,因为您的 lang.id 和 info 之间没有关系。匹配对象时使用
-
@charlietfl 有道理,谢谢你的解释。
标签: javascript php jquery html angularjs