Nic*_*obs 8 angularjs angular-ui-router
我一直在处理一些$ locationProvider问题.我有一个简单的单页面页面.但是我收到以下错误:
TypeError: Cannot read property 'replace' of undefined
at trimEmptyHash (angular.js:10551)
at Object.$locationWatch (angular.js:11399)
at Scope.$get.Scope.$digest (angular.js:14217)
at Scope.$get.Scope.$apply (angular.js:14488)
at bootstrapApply (angular.js:1449)
at Object.invoke (angular.js:4182)
at doBootstrap (angular.js:1447)
at bootstrap (angular.js:1467)
at angularInit (angular.js:1361)
at HTMLDocument.<anonymous> (angular.js:26065)
Run Code Online (Sandbox Code Playgroud)
我的app.js文件非常简单......
var app = angular.module('app',
[
'ui.router'
]
);
app.config([
'$stateProvider',
'$httpProvider',
'$locationProvider',
'$urlRouterProvider',
function ($stateProvider, $httpProvider, $locationProvider, $urlRouterProvider) {
$locationProvider.hashPrefix('!');
$locationProvider.html5Mode(true);
$stateProvider
.state('home',
{
url: '/',
views: {
'aboutView':
{
template: function (params) {
console.log("home");
return 'home';
}
}
}
})
.state('about',
{
url: '/about',
views: {
'aboutView':
{
template: function (params) {
console.log('about')
return 'about';
}
}
}
})
;
}
]);
Run Code Online (Sandbox Code Playgroud)
我<base href="http://localhost/apps/uiv8/" /> 在index.html文件中有设置.所以,当我注释掉$ locationProvider代码时,一切都在#mode中工作正常.我可以毫无问题地进入/#/ about等.一旦我把$ locationProvider部件放回去,什么都没有.
更多关于我的环境....我们在这里有asp.net的MVC,而route.config正在做一个{*url}来将所有路由重定向到默认路由,我甚至走得很远用url修改IIS重写发送到默认值,但我仍然得到上面的解析错误.
所以,任何人都有任何想法发生了什么?
谢谢,尼克
小智 2
在索引页中添加基本标签,例如:
<base href="/">
Run Code Online (Sandbox Code Playgroud)
代替 :
<base href="http://localhost/apps/uiv8/" />
Run Code Online (Sandbox Code Playgroud)
希望它能解决您的问题。
| 归档时间: |
|
| 查看次数: |
5197 次 |
| 最近记录: |