【发布时间】:2016-03-07 11:07:10
【问题描述】:
我遇到了一个问题,即我的控制器变量没有按照控制器代码正确初始化。
控制器代码是
angular.module('test')
.controller('RegisterCtrl', function RegisterCtrl($scope) {
var vm = this;
vm.model = {companyName:'aaa'};
vm.data= [{fieldtype: 'input',key:'companyName'}];
});
ui-router是
.state('register', {
// abstract: true,
url: "/register",
templateUrl: "/views/register.html",
controller: 'RegisterCtrl',
controlleras: 'vm'
})
我有一个验证基本 html 来显示模型的输出:
<h2>Model</h2>
<pre>{{vm.model }}</pre>
在 chrome 中调试代码时,它会通过控制器代码并正确设置模型和数据,但是当页面完成加载时,vm.model 是空白的。我不确定我做错了什么。
提前致谢。
【问题讨论】:
-
ui-router的状态配置对象没有controlleras属性。您需要在controller属性中指定它(即controller: 'RegisterCtrl as vm')。 -
@miqid 实际上确实如此,但它区分大小写。它是
controllerAs。这是一个简单的错字。 -
@Claies,我的错!确实如此。文档中也只有两个表格行。 :-(
-
是的,它区分大小写,现在可以使用.....谢谢
标签: angularjs angularjs-scope angularjs-controlleras