【问题标题】:AngularJS - Init and loadAngularJS - 初始化和加载
【发布时间】:2012-12-27 19:37:14
【问题描述】:

是否可以在加载时初始化范围和 ng-view?

问题:
我有一个带有经销商列表的 AngularJS 应用程序。您可以在地图上选择经销商并在路线上的覆盖 div 中打开详细信息(使用 ng-show="show" 调用它)

when(
    '/dealer/:id', {
    templateUrl: 'files/tpl/dealer-details.html?19',
    controller: 'DealerDetailsCtrl',
    activetab: 'details'}
).  

客户现在希望当客户打开页面时,会打开带有详细信息的初始详细信息叠加层。

解决方案(可能):
是否有可能,也许 ng-init,将所选经销商的硬编码 :id 发送到控制器并触发详细信息覆盖,以便它在加载时打开?或者可能会触发带有 ID 的路由。

【问题讨论】:

    标签: javascript load angularjs init


    【解决方案1】:

    如果我理解正确,如果没有提供 :id 的默认值,您想要一个默认值吗?

    最好的选择是在您的 $routeProvider 中包含两个 when 子句:

    $routeProvider.when(
        '/dealer', {
        templateUrl: 'files/tpl/dealer-details.html?19',
        controller: 'DealerDetailsCtrl',
        activetab: 'details'}
    );
    $routeProvider.when(
    '/dealer/:id', {
    templateUrl: 'files/tpl/dealer-details.html?19',
    controller: 'DealerDetailsCtrl',
    activetab: 'details'}
    );
    

    如果未定义,您可以在控制器中分配默认值:

    $scope.dealer = $routeParams.id || 'defaultDealerId';
    

    【讨论】:

    • 这是否包括覆盖也打开?
    • 通常情况下,您的 ng-show 应该会处理它,但如果没有更多代码 sn-ps 就很难知道
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多