【问题标题】:ng-controller works, ui-router: controller notng-controller 有效,ui-router: 控制器无效
【发布时间】:2015-03-03 10:52:29
【问题描述】:

我想加载一个配置为 ui-router 状态的模板/控制器的视图,但无论我尝试什么,控制器似乎都没有加载,没有任何错误消息。

module App {

    var dependencies = [
         "ui.router",
         Controllers
    ]

    function configuration($stateProvider: ng.ui.IStateProvider) {

        $stateProvider
            .state("test", {
                url: "/test",
                views: {
                    "": { templateUrl: "parentView.html" },
                    "testPartial@" : {
                        templateUrl: "partial.html",
                        controller: <--- see below
                        ...
                    }
                ...
    }

我尝试了什么:

controller: Controllers.TestController

controller: App.Controllers.TestController

controller: "App.Controllers.TestController"

controller: "App.Controllers.ITestController" (interface)

但是,如果我在模板上声明 ng-controller="App.Controllers.TestController as vm",一切都会完美无缺。

【问题讨论】:

  • ... &lt;-- see below 中有什么内容?你需要在状态配置中指定控制器,你也可以指定控制器为好
  • 点击Documentation并搜索短语“视图中的每个视图都可以设置自己的模板”并查看下面的示例。对于控制器名称,您只需在 .controller("chillCtrl") 中声明名称,如“chillCtrl”。确保 chillCtrl 已定义或使用延迟加载。
  • @PSL 我已经编辑过了。
  • @PSL 是的,我已经多次阅读文档并尝试了所有可能的方法,但似乎没有任何效果。

标签: javascript angularjs typescript angular-ui-router angular-routing


【解决方案1】:

鉴于 ng-controller 上的工作原理,controller: "App.Controllers.TestController" 保证工作。

问题在于缺少 as vm 部分。您可以通过将控制器放在示波器上来克服这个问题:https://youtube.com/watch?v=WdtVn_8K17E&hd=1

【讨论】:

    猜你喜欢
    • 2014-05-28
    • 1970-01-01
    • 1970-01-01
    • 2018-05-12
    • 2020-11-13
    • 2018-05-10
    • 2015-09-12
    • 2017-01-26
    • 2022-11-09
    相关资源
    最近更新 更多