更新时间:2023-02-26 21:31:28
有关让它工作,你需要做的code更改数量,你需要把所有的服务器的相关信息,以命名为 self.serverInfo ,将包含有关服务器
&放的信息; 服务器
直接与范围的变量绑定,这将自动更新绑定按照JavaScript的原型继承。
For make it working you need to do number of changes in your code, You need to put all server related information to one object named as self.serverInfo
that will contain the information about server
& servers
directly bind this with scope variable will update binding automatically as per JavaScript Prototypal inheritance.
HTML
<body ng-controller="SettingsCtrl">
<div class="list">
<label class="item item-input item-select">
<div class="input-label">
Server
</div>
{{serverInfo}}
<select ng-model="serverInfo.server"
ng-options="s as s.label for s in serverInfo.servers">
</select>
</label>
</div>
</body>
控制器
var app = angular.module('app',[]);
app.controller('SettingsCtrl', function ($scope, $log, serverSelection) {
//List of servers to connect to
$scope.serverInfo= serverSelection.serverInfo;
$scope.$watch('serverInfo.server', function(NewValue, OldValue) {
$scope.url = $scope.serverInfo.server.url;
}, true);
})
app.service("serverSelection", function() {
var self = this;
self.serverInfo = {};
self.serverInfo.servers = [
{ label: 'Production', value: 1, url: 'url1' },
{ label: 'Training', value: 2, url: 'url2' },
{ label: 'Local', value: 3, url: 'url2' }
];
self.serverInfo.server = self.serverInfo.servers[1];
console.log(self.server);
self.serverInfo.url = self.serverInfo.server.url;
})