我正在使用 AngularJS 构建一个 Chrome 打包应用程序,使用 $routeProvider 似乎非常可取,但是这些方法似乎与应用程序内的 URL 系统不匹配。
所以我的问题是我可以在 Chrome 打包应用程序中实现 $routeProvider 功能吗?如果可以,如何实现?
我正在使用 AngularJS 构建一个 Chrome 打包应用程序,使用 $routeProvider 似乎非常可取,但是这些方法似乎与应用程序内的 URL 系统不匹配。
所以我的问题是我可以在 Chrome 打包应用程序中实现 $routeProvider 功能吗?如果可以,如何实现?
不确定这是否是最好的解决方案,但我似乎自己解决了这个谜。
设置 $routeProvider 但是您希望它是,而不是使用应用程序中的链接使用 ng-click 指令,该指令使用 $location 将路径更改为与您的 $routeProvider 路径匹配的任何内容。
在下面的示例中,我创建了一个“链接”指令,将 $location.path 设置为单击时的任何值。
#coffescript:
app.directive "link", ($location) ->
(scope, element, attrs) ->
element.bind "click", ->
scope.$apply $location.path(attrs.link)
app.config ($routeProvider) ->
$routeProvider
.when "",
templateUrl: "index.html"
.when "/otherPage",
templateUrl: "path/to/otherPage.html"
.otherwise
template: "Fail!"
空字符串路由匹配应用程序的初始状态。
无论链接 attr 附加到什么,都将成为可点击的链接。
<button link="otherPage">Take me to otherPage</button>
<div link="otherPage">Make divs clickable too why not?</div>