Javascript Angularjs:如何通过控制器将范围变量从一个视图传递到另一个视图?
我有两个视图(index1.html和index2.html)。在index1中,有一个按钮将两个参数传递到我的控制器中,我需要在我的作用域中设置这两个变量,index2.html可以访问它们,单击该按钮,页面进入index2.html 这是我的密码: 在Index1.html中:Javascript Angularjs:如何通过控制器将范围变量从一个视图传递到另一个视图?,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我有两个视图(index1.html和index2.html)。在index1中,有一个按钮将两个参数传递到我的控制器中,我需要在我的作用域中设置这两个变量,index2.html可以访问它们,单击该按钮,页面进入index2.html 这是我的密码: 在Index1.html中: <button type="button" ng-controller="myController" data-ng-click="detailed('title1', 'url1')" class="btn
<button type="button" ng-controller="myController" data-ng-click="detailed('title1', 'url1')" class="btn btn-default">test</button>
我访问了index2.html,但没有生成任何内容
<div ng-controller="myController">
<ul>
<li ng-repeat="todo in todos">
<span>{{todo.text}}</span>
</li>
</ul>
</div>
-
{{todo.text}
一个不错的选择是将$routeParams
与$location
结合使用
app.controller('Index1Controller', function ($scope, $location) {
$scope.onClick = function () {
$location.path('index2').search({data: content});
};
});
app.controller('Index2Controller', function ($scope, $routeParams) {
console.log($routeParams.data);
});
这将通过URL传递数据,在刷新页面时,URL也将保持状态。
网站应该通过URL捕获状态,因此您可以与人共享URL请阅读有关服务的信息,以及它们如何帮助控制器之间共享内容,例如:我不知道如何做到这一点,但我可以建议其他方法来实现您的目标。您可以使用本地存储、会话或$rootScope。所有的选项都非常好,你会举个例子吗?@user1429595 111分的答案不够好吗?您的待办事项列表应该存储在服务中,并且这些服务应该被注入到您需要该列表的控制器中。一个很好的经验法则:当你想在多个视图之间共享一个控制器时……不要!相反,设置一个可以注入多个控制器的服务,以便它们可以共享数据。
app.controller('Index1Controller', function ($scope, $location) {
$scope.onClick = function () {
$location.path('index2').search({data: content});
};
});
app.controller('Index2Controller', function ($scope, $routeParams) {
console.log($routeParams.data);
});