【问题标题】:Why does my controller isn't matching with view?为什么我的控制器与视图不匹配?
【发布时间】:2017-09-18 02:37:30
【问题描述】:

我是 angular/jade 的新手,我不明白为什么我的控制器在我的视图中不起作用,我不能使用我在控制器中设置的变量。

这是控制器代码:

angular.module 'app'

.controller "DirectoryGridCtrl", ($scope, Refs) ->

  ################################################################################
  # actions                                                                      #
  ################################################################################

  ################################################################################
  # onLoad                                                                       #
  ################################################################################

  $scope.test = "Test"

  ################################################################################
  # constructor grid                                                             #
  ################################################################################

  @grid = new Grid(resource: Directory, ctrlName: 'directoryGrid')

  ################################################################################
  # return                                                                       #
  ################################################################################
  return

我尝试过使用 vm.test、test、scope.test、$scope.test 等。

路线如下:

angular.module 'app'

.config ($stateProvider) ->

  $stateProvider
    .state 'app.directory.grid',
      url: ''
      templateUrl: 'app/modules/directory/grid/directory-grid.html'
      controller: "DirectoryGridCtrl as vm"

这是我尝试使用它的地方,但它从未被打印出来:

  {{::vm.test}}
  {{::refs.userList}}

我应该创建其他文件吗?还是我做错了什么?

谢谢,

尼古拉斯

【问题讨论】:

  • 没有控制台错误?在标记中,插值绑定是否在您的 DirectoryGridCtrl 范围内?
  • 没有 cosole 错误!我真的不明白你的第二个问题是什么意思,但是在这个问题之前使用的所有控制器都可以正常工作
  • 您的控制器需要附加到 DOM,并且您的绑定应该在控制器的范围内。比如:<div ng-controller="DirectoryGridCtrl"> {{ yourBinding }} </div>
  • 我用的是 Jade,不是 html 是不是一样的方法?
  • 原理是一样的,当然你应该使用Jade语法。重点是绑定需要嵌套在附加控制器的元素中,以便这些值在范围内。

标签: angularjs web view controller pug


【解决方案1】:

由于您使用的是作用域,请使用

 {{::test}}

也将状态更改为,

 $stateProvider
    .state 'app.directory.grid',
      url: ''
      templateUrl: 'app/modules/directory/grid/directory-grid.html'
      controller: "DirectoryGridCtrl"

【讨论】:

  • 感谢您的回答,但仍然无法正常工作。什么都没有打印
猜你喜欢
  • 1970-01-01
  • 2018-03-18
  • 2012-11-07
  • 1970-01-01
  • 1970-01-01
  • 2012-10-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多