我对角度不太好,但我知道一些基础知识。现在,我有接入点,并希望将它们分配给建筑物。我可以使用<select>
选择此建筑物。我写了一个简单的控制器,但它不会工作。我做错了什么,我找不到解决办法。
编辑1: 我可以看到选项字段(它们是3)。但是在我选择其中一个后,我的浏览器控制台会抛出异常
编辑2: Plunkr - &gt; https://plnkr.co/edit/EIPs8yVlTSaYQ0EuZLTb(我希望,这个网址有效)..点击“Neuer Access-Point”后,在“Gebäude”选择内容后会出现错误
选择字段
<select ng-model="$ctrl.input.building">
<option ng-repeat="building in $ctrl.buildings" ng-value="building.id" ng-bind="building.name"></option>
</select>
控制器
(function () {
function createController(Building) {
var ctrl = this;
ctrl.buildings = null;
ctrl.input = {
host: '',
desc: '',
web: '',
building: ''
};
ctrl.$onInit = function () {
Building.getAll().then(function (res) {
if (res.status >= 200 && res.status < 300) {
ctrl.buildings = res.data;
}
});
};
}
angular.module('app').controller('CreateController', createController)
})();
错误
angular.js:14791 Error: [$rootScope:inprog] http://errors.angularjs.org/1.6.8/$rootScope/inprog?p0=%24apply
at angular.js:88
at p (angular.js:18897)
at m.$digest (angular.js:18319)
at m.$apply (angular.js:18640)
at Object.$$debounceViewValueCommit (angular.js:29394)
at Object.$setViewValue (angular.js:29372)
at angular.js:33596
at m.$eval (angular.js:18533)
at m.$apply (angular.js:18632)
at HTMLSelectElement.<anonymous> (angular.js:33595)
答案 0 :(得分:2)
以下是您的代码的问题。
ng-controller="RootController as anythingButNot$root"
将其更改为
ng-controller="RootController"
甚至只是$root
将任何控制器声明为$root
会给您带来麻烦。 html
是应用程序的根级控制器。在controller as $root
内,如果您声明任何$root
,它会尝试覆盖{{1}},从而在摘要周期中造成问题,因此您会收到错误。
链接到更新的plunk =&gt; https://plnkr.co/edit/UcJHVmekMqWMXJBnv2Cu?p=preview