Angularjs, 视野范围
Angularjs, ng-view scope
我这里有一个笨蛋 - http://plnkr.co/edit/PzSvKD9M4l1MKjlYluYm?p=preview
我在这里使用演示 json - https://api.myjson.com/bins/1hdr5
我正在使用 ng-view 和 ngRoute 来显示两个页面。
第一个是从 json 文件中提取的 stories/posts 列表。这显示了 json 文件中的部分内容 - 我限制了文本的数量。
我希望能够单击这些并打开一个新视图,显示所单击的 story/post 的完整内容。
我添加了一个 story.html,当在第一个视图中单击 story/post 时它会打开。
我的问题是将范围连接到 story.html 视图。我需要知道要加载的 josn 的正确部分以匹配单击的 story/post。
var app = angular.module('myApp', ['ngRoute']);
app.service('myService', function ($http, $q) {
var deferred = $q.defer();
$http.get('https://api.myjson.com/bins/1hdr5').then(function (data) {
deferred.resolve(data);
})
this.getStory = function () {
return deferred.promise;
}
})
.controller('myCtrl', function ($scope, myService) {
var promise = myService.getStory();
promise.then(function (data) {
$scope.stories = data.data.stories;
})
})
/*
.controller('storyCtrl', function ($scope, myService) {
var promise = myService.getStory();
promise.then(function (data) {
$scope.stories = data.data.stories;
})
}) */
.config(function ($routeProvider) {
$routeProvider
// route for the home page
.when('/', {
templateUrl: 'home.html',
controller: 'myCtrl'
})
.when('/story', {
templateUrl: 'story.html',
controller: 'storyCtrl'
})
});
如果每个故事有不同的标题,那么在每个故事里面 ng-repeat,在 href 中你也可以在 link 中传递标题。你必须在 /story 之后在路由文件中声明一个标题变量,然后你可以通过 $routeparams 服务捕获动态标题的值。
你的 href 会像这样
data-ng-href="#story/{{story.Title}}"
你的路线是这样的:
.when('/story/:title'
在 Story Controller 中,您可以像这样捕捉标题:
$scope.selectedTitle = $routeParams.title
根据捕获的标题,您可以将所选故事放入包含故事的 objects 数组中,并将其显示给 html
查看更新的插件:
http://plnkr.co/edit/b712OernQ8bNb6qUMEdx?p=preview
我这里有一个笨蛋 - http://plnkr.co/edit/PzSvKD9M4l1MKjlYluYm?p=preview
我在这里使用演示 json - https://api.myjson.com/bins/1hdr5
我正在使用 ng-view 和 ngRoute 来显示两个页面。
第一个是从 json 文件中提取的 stories/posts 列表。这显示了 json 文件中的部分内容 - 我限制了文本的数量。
我希望能够单击这些并打开一个新视图,显示所单击的 story/post 的完整内容。
我添加了一个 story.html,当在第一个视图中单击 story/post 时它会打开。
我的问题是将范围连接到 story.html 视图。我需要知道要加载的 josn 的正确部分以匹配单击的 story/post。
var app = angular.module('myApp', ['ngRoute']);
app.service('myService', function ($http, $q) {
var deferred = $q.defer();
$http.get('https://api.myjson.com/bins/1hdr5').then(function (data) {
deferred.resolve(data);
})
this.getStory = function () {
return deferred.promise;
}
})
.controller('myCtrl', function ($scope, myService) {
var promise = myService.getStory();
promise.then(function (data) {
$scope.stories = data.data.stories;
})
})
/*
.controller('storyCtrl', function ($scope, myService) {
var promise = myService.getStory();
promise.then(function (data) {
$scope.stories = data.data.stories;
})
}) */
.config(function ($routeProvider) {
$routeProvider
// route for the home page
.when('/', {
templateUrl: 'home.html',
controller: 'myCtrl'
})
.when('/story', {
templateUrl: 'story.html',
controller: 'storyCtrl'
})
});
如果每个故事有不同的标题,那么在每个故事里面 ng-repeat,在 href 中你也可以在 link 中传递标题。你必须在 /story 之后在路由文件中声明一个标题变量,然后你可以通过 $routeparams 服务捕获动态标题的值。
你的 href 会像这样
data-ng-href="#story/{{story.Title}}"
你的路线是这样的:
.when('/story/:title'
在 Story Controller 中,您可以像这样捕捉标题:
$scope.selectedTitle = $routeParams.title
根据捕获的标题,您可以将所选故事放入包含故事的 objects 数组中,并将其显示给 html
查看更新的插件: http://plnkr.co/edit/b712OernQ8bNb6qUMEdx?p=preview