Meteor Angular UI.Router 链接的语法要求是啥?

Posted

技术标签:

【中文标题】Meteor Angular UI.Router 链接的语法要求是啥?【英文标题】:What are the syntax requirements on Meteor Angular UI.Router linking?Meteor Angular UI.Router 链接的语法要求是什么? 【发布时间】:2016-05-06 17:05:28 【问题描述】:

我正在关注 angular-meteor 教程:http://www.angular-meteor.com/tutorials/socially/angular1/routing-and-multiple-views

我了解大部分路由,但我看不出所有部分在哪里联系在一起。所以这是我的思考过程。

在路线上,我注意到 :partyId。

.state('parties', 
        url: '/parties',
        template: '<parties-list></parties-list>'
      )
          .state('partyDetails', 
            url: '/parties/:partyId',
            template: '<party-details></party-details>'
          );

在 party-list> 中,我可以看到“this.partyId = $stateParams.partyId”被定义。 #1。 :partyId 和 $stateParams.partyId 有什么关系? #2。该指令称为“partyDetails”,而模板是...这是Angular给出的隐含名称吗?

angular.module('socially').directive('partyDetails', function () 
    return 
      restrict: 'E',
      templateUrl: 'party-details.html',
      controllerAs: 'partyDetails',
      controller: function ($scope, $stateParams) 
        this.partyId = $stateParams.partyId;
      
    
  );

接下来……在party-list.html页面(不是party-details.html)里面,有一个ui-sref链接:

  <li ui-sref="partyDetails( partyId: party._id )" ng-repeat="party in partiesList.parties">
    party.name
    <p>party.description</p>
    <button ng-click="partiesList.removeParty(party)">X</button>
  </li>

但是在 party-list> 指令中没有提到任何名为“partyDetails”的变量或函数。 #3. 什么是 ui-sref 引用?它与本教程中进一步使用的“”相比如何。 #4。最后,关于 Meteor 或 Angular UI.Router 对于隐含/抽象的事物,我有什么需要了解的吗?

感谢您的宝贵时间! :)

【问题讨论】:

【参考方案1】:
    一样。如果您在查询字符串中声明参数,例如 :partyId,您将收到一个对象 stateParams,其中键是这些参数,值是您的 url 段中的比例字符串。 这是 Angular Js 的编码对话。您可以查看更多示例。 https://docs.angularjs.org/guide/directive 如果你在任何地方使用正确的,都没有问题。但是,如果您想更改链接或 url 结构会发生什么?示例:href="/home" 出现 20 多个 html 页面。并且您想全部更改为“/homepage”。为什么???。使用路由器,您只需要更改 router.js 文件中的 url 状态。好吗? Angular-meteor 是帮助您使用 Angular 构建应用程序的方法之一。所以所有与角度相关的东西,你都可以单独找到。示例您可以在此链接https://angular-ui.github.io 中阅读有关 angular ui 路由器或所有 angularui 包的信息

【讨论】:

内容丰富!谢谢,但您能否澄清#3,具体来说,party._id 作为partyDetails 的参数做了什么? 是的。明显地。您在您的状态下声明第二段是partyId,所以ui-router会知道party._id是partyId

以上是关于Meteor Angular UI.Router 链接的语法要求是啥?的主要内容,如果未能解决你的问题,请参考以下文章

ngRoute (angular-route.js) 和 ui-router (angular-ui-router.js) 模块有什么不同呢?

ngRoute (angular-route.js) 和 ui-router (angular-ui-router.js) 模块有什么不同呢?

调整 ui-view 元素的高度[Angular.js Angular UI Router]

angular ui-router:在解析中获取 toState 的 $state 信息

Angularjs中UI Router全攻略

使用 Angular UI Router 渲染组件