比较来自世界各地的卖家的域名和 IT 服务价格

Angularjs 使用 $routeProvider 没有 ng-view

我有一个简单的单页应用程序,显示它上的图像。

当您第一次下载时,页面为空,人们添加自己的图像,但如果它们然后以保存的标识符返回页面 url, 然后我希望页面捕获上一个模型。

现在我以前的所有尝试都使用 routeProvider 如果我没有放置,则失败了 ng-view 在页面上的某个地方。 但这然后影响区域内的区域。 ng-view.

原则上,我需要在页面上不同地反应,具体取决于是否存在标识符 url 或者不是,但我没有更改视图,我需要从路由参数中获取标识符。

所以我只是想知道你是怎么回事,当我似乎不是那些树上的夫人时,你会这样做! 任何帮助都会非常感激。
已邀请:

小姐请别说爱

赞同来自:

这是一个处理方法之一 url 使用标识符和使用标准设置 routeProvider, 有一个控制器:

JS:


var app = angular.module/'plunker', []/;

app.config/function/$routeProvider/{
return $routeProvider
.when/'/', {
controller: 'HomeController',
templateUrl: 'home.html'
}/
.when/'/:id', {
controller: 'HomeController',
templateUrl: 'home.html'
}/
.otherwise/{ redirectTo: '/' }/;
}/;

app.controller/'HomeController',
[
'$scope',
'$routeParams',
function/$scope, $routeParams/ {
if/$routeParams.id/{
$scope.id = $routeParams.id;
// handle scenario when there is an id in URL
return;
}

// handle scenario when there is no id
$scope.id = 'no ID!!';
}
]
/;


http://plnkr.co/edit/wgUpeq9jz1ZJeUGf1WVz
但没有使用的另一种方式 ng-view 并依靠服务 $location:


var app = angular.module/'plunker', []/;

app.config/
['$locationProvider',
function/$locationProvider/ {
$locationProvider.html5Mode/true/;
}
]
/;

app.controller/'HomeController',
[
'$scope',
'$location',
function/$scope, $location/ {

$scope.$watch/function//{
return $location.hash//;
},
function/id/{
$scope.id = id;
}
/;

$scope.$watch/'id', function/id/{
if/id/{
// handle scenario when there's id available
return;
}
// handle scenario when there is no id
}/;

}
]
/;


http://plnkr.co/edit/071lYiArvGe95wMH2mua

涵秋

赞同来自:

http://plnkr.co/edit/S0ZgUkt4m ... eview
启动服务 $route, 添加
$route

作为应用程序启动单元的依赖项。 描述了这个想法
[/url]
.


angular.module/'myApp', ['myApp.controllers']/
.config/function/$routeProvider/ {
return $routeProvider.when/"/", {
controller: 'firstCtrl'
}/.when/"/numbers/:number", {
controller: 'secondCtrl'
}/;
}/.run/function/$route/ {}/;

angular.module/"myApp.controllers", []/
.controller/"firstCtrl", function/$scope/ {
$scope.numbers = [1, 2, 3];
}/
.controller/"secondCtrl", function/$scope,$routeParams, $rootScope, $location/ {
return $rootScope.$on/"$routeChangeSuccess", function/event, current/ {
$scope.current_path = $location.$$path;
$scope.number = $routeParams['number'];
}/;
}/;

冰洋

赞同来自:

你可能会做一些类似于垃圾箱的东西。 也就是说,使用 ng-switch 并制造价值 hash 在作出决定哪个模板与其结合的决定时 ng-include. 所以当你去另一种方式 url, 您正在聆听此更改,更新模型并启动新功能 include/partial.

http://www.bennadel.com/blog/2 ... S.htm

小姐请别说爱

赞同来自:

您可以始终定义自己的解析器。 url.
创建服务,然后在您想要的时间和地点使用它。


angular.module/'app'/.service/'urlParser', function//{
this.parse = function/url/{
var query = url.split/'?'/
if /url.length == 1/{ return {} } //it means it has no parameters
else{
var paramsArray = query.split/'&'/
var params = {} //this is going to be your return object
var i;
for / i=0; i < paramsArray.length; i++ /{
var arr = paramsArray[i].split/'='/
var param = arr[0]
var value;
//check if is set with some value
if/ arr.length == 1 /
value = null
else
value = arr[1]
obj[param] = value
}
return obj;
}
}
}/


您将从您的控制器称为服务。
服务名称: urlParser
方法名称: parse /: string/

例子:

var url = "
http://www.yourwebsite.com/you ... D1000
"

var params = urlParser.parse/url/

params.page //gives 你 1

params.user //gives 你 1000

我希望它有所帮助

要回复问题请先登录注册