gpt4 book ai didi

javascript - 带 Controller 的路由 : In route or template definition?

转载 作者:行者123 更新时间:2023-12-02 15:32:55 25 4
gpt4 key购买 nike

当使用模板定义路由时,基本上有两种方法可以设置与 View 相对应的 Controller :

  • 在 route :

    $routeProvider
    .when('/phone/:phoneId', {
    controller: 'PhoneDetailController',
    templateUrl: 'phone.detail.html',
    }
    });
  • 在模板中:

    $routeProvider
    .when('/phone/:phoneId', {
    templateUrl: 'phone.detail.html',
    }
    });
    <div ng-controller="PhoneDetailController">
    <!-- [...] -->
    </div>

有什么区别,推荐什么,为什么?

最佳答案

如果你看一下 ui-router 源代码,里面 viewDirective.js您可以看到 Controller 是如何实例化的:

if (locals.$$controller) {
locals.$scope = scope;
locals.$element = $element;
var controller = $controller(locals.$$controller, locals);
if (locals.$$controllerAs) {
scope[locals.$$controllerAs] = controller;
}
$element.data('$ngControllerController', controller);
$element.children().data('$ngControllerController', controller);
}

所以基本上你的两个选择基本上会做同样的事情。所以这取决于你,以及你认为最好的语义是什么。就我个人而言,我更喜欢将 Controller 名称放在状态定义中,因为我喜欢尽可能保持模板面向 View (并且可重用)。而且这似乎是最常见的做事方式,因此其他人将能够更轻松地理解您的代码。

关于javascript - 带 Controller 的路由 : In route or template definition?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33166760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com