Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angularjs:如何通过控制器将范围变量从一个视图传递到另一个视图?_Javascript_Angularjs_Angularjs Scope - Fatal编程技术网

Javascript Angularjs:如何通过控制器将范围变量从一个视图传递到另一个视图?

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

我有两个视图(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 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);
});