使用angularjs和urlserviceprovider在url中用破折号替换空格
我以前问过这个问题,尽管有人制作了一个plunker,显示它是有效的。我根本无法让它工作。 普朗克在这里: 我正在尝试创建一个将用破折号替换空格的状态,因此我创建了以下内容:使用angularjs和urlserviceprovider在url中用破折号替换空格,angularjs,Angularjs,我以前问过这个问题,尽管有人制作了一个plunker,显示它是有效的。我根本无法让它工作。 普朗克在这里: 我正在尝试创建一个将用破折号替换空格的状态,因此我创建了以下内容: $urlServiceProvider.config.type('productName', { encode: function (str) { return str && str.replace(/ /g, '-'); }, decode: function (str) { return
$urlServiceProvider.config.type('productName', {
encode: function (str) { return str && str.replace(/ /g, '-'); },
decode: function (str) { return str && str.replace(/-/g, ' '); },
is: angular.isString,
pattern: /[^/]+/
});
应该用破折号替换空格。
上面的plunker可以工作,但在我的项目中不起作用。所以我创建了一个新项目,然后添加了代码。我已经公开了这个项目,所以你可以下载它并在本地测试它。
它位于这里:
有人能帮我看看它,告诉我为什么它不起作用吗?这是一个非常简单的项目(几乎和上面的plunker一样简单)。
请提供帮助:)注册状态后,您的项目将添加自定义参数类型。在注册状态之前,参数类型必须存在 定义一个新的angularjs模块(我们称之为
testsApp.routerConfig
),它定义了自定义参数类型
function configureApp($locationProvider, $urlServiceProvider) {
$locationProvider.html5Mode({ enabled: true });
$urlServiceProvider.config.type('productName', {
encode: function (str) { return str && str.replace(/ /g, '-'); },
decode: function (str) { return str && str.replace(/-/g, ' '); },
is: angular.isString,
pattern: /[^/]+/
});
}
angular.module('testsApp.routerConfig', ['ui.router']).config(configureApp);
var testsApp = angular.module('testsApp', ['testsApp.routerConfig', 'testsApp.core']);
确保在注册状态(使用参数类型)的模块之前处理routerConfig模块
本例假设您的状态由名为testsApp.core