Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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 ng单击:在页面之间传递数据selectedItem angularjs_Javascript_Angularjs - Fatal编程技术网

Javascript ng单击:在页面之间传递数据selectedItem angularjs

Javascript ng单击:在页面之间传递数据selectedItem angularjs,javascript,angularjs,Javascript,Angularjs,因此,我可以选择列表中的项目,但目的是在单击时将所选列表的数据传递到另一个/route中。我需要一些帮助,因为我真的不知道如何继续请。如果你知道朋克的例子,请毫不犹豫地告诉我:) 下面是我的选项建议控制器 app.controller('optionSuggestionController', ['$scope', '$http', function($scope, $http) { $http.get('suggestions.json') .then(function(r

因此,我可以选择列表中的项目,但目的是在单击时将所选列表的数据传递到另一个/route中。我需要一些帮助,因为我真的不知道如何继续请。如果你知道朋克的例子,请毫不犹豫地告诉我:)

下面是我的选项建议控制器

app.controller('optionSuggestionController', ['$scope', '$http', function($scope, $http) {

  $http.get('suggestions.json')
       .then(function(res){
          $scope.suggestions = res.data;                
        });

    $scope.setMaster = function(suggestion) {
        $scope.selected = suggestion;
    }

    $scope.isSelected = function(suggestion) {
        return $scope.selected === suggestion;
    }
}])
下面是我的数据列表

<ul class="list-holder">
    <li ng-repeat="suggestion in suggestions" ng-class="{active : isSelected(suggestion)}">
        <a ng-click="setMaster(suggestion)">{{suggestion.fromto}}</a>
    </li>
</ul>

我认为您可以使用提供程序“$rootScope”

$rootScope.selected = suggestion;
您可以在其他控制器中访问此数据


希望有帮助。

您可以使用服务或工厂在控制器之间共享数据,我用您的代码创建了一个工厂,并在要使用的控件上调用它

    app.controller('optionSuggestionController', function ($scope, $filter, $timeout, $timeout, $http, testFactory) {

            testFactory.get(function (resp) {
                console.log(resp);
                $scope.suggestions = resp;
            });
    });


    app.factory('testFactory', function ($http) {
        var databaseFactory = {};
        databaseFactory.get = function (callback) {

            return $http.get('suggestions.json').then(function (response) {
                databaseFactory.returnedData = response.data;
                callback(databaseFactory.returnedData);
            });
        }
        return databaseFactory;
    });

我有两个建议:

  • 您可以使用提供程序“$rootScope”

    $rootScope.selected = suggestion;
    
    $rootScope.selected=建议

  • 或者通过提供程序“$route”通过url获取参数

    var suggestion=$route.current.params.suggestion


我们需要知道
sugestion
对象是什么样子的,但我想如果您使用状态服务,您可以在两个控制器之间共享相同的服务,然后通过状态服务访问单击的sugestion:)谢谢@Amir,这正是我需要的,我将致力于此