0

我遇到了一个问题,即我的控制器变量没有按照控制器代码正确初始化。

控制器代码是

  angular.module('test')
  .controller('RegisterCtrl', function RegisterCtrl($scope) {
var vm = this;
   vm.model = {companyName:'aaa'};
    vm.data= [{fieldtype: 'input',key:'companyName'}]; 
});

ui路由器是

  .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 是空白的。我不确定我做错了什么。

提前致谢。

4

2 回答 2

0

尝试将其用作您的 HTML 正文标记:

<body ng-controller="RegisterCtrl as vm" ng-app="test">
于 2015-12-03T00:38:08.927 回答
0

为此,我建议您使用$scope.model而不是var

angular.module('test')
 .controller('RegisterCtrl',['$scope',function($scope) {
   $scope.model = {
                    companyName:'aaa'
                  };
   $scope.data= [
                 {
                   fieldtype: 'input',
                   key:'companyName'
                 }
                ]; 
 }]);

HTML

<h2>Model</h2>
<pre ng-bind="model.companyName"></pre>
<pre>{{model.companyName}}</pre>
<pre>{{model}}</pre>
于 2015-12-03T00:47:30.523 回答