适用于ngRoute,ng-view和代码重复的最佳实践

时间:2016-01-22 11:53:03

标签: javascript angularjs ngroute

ngRoute的Angular API参考提供了此example。请注意,chapter.html包含来自book.html的重复代码。

如果用例需要$route功能,那么实现此示例的正确方法是什么?我想对ng-includebook.html使用chapter.html来删除重复,但是使用$route是不合适的,对吗?

1 个答案:

答案 0 :(得分:1)

  

然后使用$ route是不合适的,对吗?

$ route仅用于显示参数的值。对你来说,这不是我假设的实际应用的一部分?见这部分:

  <pre>$location.path() = {{$location.path()}}</pre>
  <pre>$route.current.templateUrl = {{$route.current.templateUrl}}</pre>
  <pre>$route.current.params = {{$route.current.params}}</pre>
  <pre>$route.current.scope.name = {{$route.current.scope.name}}</pre>
  <pre>$routeParams = {{$routeParams}}</pre>

或者你是说你不会完全使用路由系统?我会说你可以保留原样。不同路由加载的代码用于书籍:

controller: {{name}}<br />
Book Id: {{params.bookId}}<br />

还有一章:

controller: {{name}}<br />
Book Id: {{params.bookId}}<br />
Chapter Id: {{params.chapterId}}

这意味着您可以添加&#39; book.html&#39;在&quot; chapter.html&#39;使用ng-include。或者您可以创建一个负责打印书籍的指令,并重复使用它。

因此,使用ng-include:

<div ng-include='book.html'></div>
Chapter Id: {{params.chapterId}}

或使用指令:

<my-book-directive></my-book-directive>
Chapter Id: {{params.chapterId}}