Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.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 在指向的页面上调用$location.path()后,是否可以设置或创建$scope变量?_Javascript_Angularjs - Fatal编程技术网

Javascript 在指向的页面上调用$location.path()后,是否可以设置或创建$scope变量?

Javascript 在指向的页面上调用$location.path()后,是否可以设置或创建$scope变量?,javascript,angularjs,Javascript,Angularjs,我有个问题。我试图在我的网站上实现一个全局搜索功能,但在获取数据时遇到了一些问题。我有一个文件: /*index.html*/ <div ng-controller="ControllerOfFileIWantToGoTo"> <input type="text" class="form-control" placeholder="Search..." ng-model="search"></input> <button class="b

我有个问题。我试图在我的网站上实现一个全局搜索功能,但在获取数据时遇到了一些问题。我有一个文件:

/*index.html*/
<div ng-controller="ControllerOfFileIWantToGoTo">
    <input type="text" class="form-control" placeholder="Search..." ng-model="search"></input>
    <button class="btn btn-default" type="button" ng-click="searchValue(search);">
        <i class="fa fa-search"></i>
    </button>
</div>
与此页面关联的HTML具有:

<!-- FileIWantToGoTo.html -->
<label>I am searching for {{search}}!</label>

我正在搜索{{search}!
不过,每当我运行此操作时,搜索永远不会更新。我没有设置$scope.search变量,因为我认为任何空值都会覆盖我给它的值。它只导航到一个停止的页面。如何使其既能导航到页面又能更新“search”变量

另外,我尝试了$apply(),但收到一个错误,说它已经在使用中

  • $scope是相对的
  • $locaton.path更改位置路径并切换上下文,从而切换$scope
  • 我建议使用服务设置变量。您的两个控制器都需要访问该服务。然后在searchValue函数中,调用该服务来设置值,然后重定向。在结果页面上,您可以使用该服务检索该值

  • $scope是相对的
  • $locaton.path更改位置路径并切换上下文,从而切换$scope
  • 我建议使用服务设置变量。您的两个控制器都需要访问该服务。然后在searchValue函数中,调用该服务来设置值,然后重定向。在结果页面上,您可以使用该服务检索该值。

    您可以使用ngRoute模块和
    $routeProvider

    将以下内容添加到您的应用程序模块以插入ngRoute

    var myApp = angular.module('myApp', ['ngRoute']);
    
    然后创建到url和控制器的路由

    myApp.config(function ($routeProvider) {
    
        $routeProvider.when('/search/:searchParam', {
            template: '<label>I am searching for {{search}}</label>',
            controller: 'searchController'
        });
    });
    
    myApp.config(函数($routeProvider){
    $routeProvider.when('/search/:searchParam'{
    模板:“我正在搜索{{search}}”,
    控制器:“searchController”
    });
    });
    
    在searchController中,您可以使用$routeParams访问参数

    myApp.controller('searchController', ['$scope', '$routeParams', function($scope, $routeParams) {
    
        $scope.search = $routeParams.searchParam || '<defaultSearchValue>';
    
    }]);
    
    myApp.controller('searchController',['$scope','$routeParams',函数($scope,$routeParams){
    $scope.search=$routeParams.searchParam | |“;
    }]);
    
    您可以使用ngRoute模块和
    $routeProvider

    将以下内容添加到您的应用程序模块以插入ngRoute

    var myApp = angular.module('myApp', ['ngRoute']);
    
    然后创建到url和控制器的路由

    myApp.config(function ($routeProvider) {
    
        $routeProvider.when('/search/:searchParam', {
            template: '<label>I am searching for {{search}}</label>',
            controller: 'searchController'
        });
    });
    
    myApp.config(函数($routeProvider){
    $routeProvider.when('/search/:searchParam'{
    模板:“我正在搜索{{search}}”,
    控制器:“searchController”
    });
    });
    
    在searchController中,您可以使用$routeParams访问参数

    myApp.controller('searchController', ['$scope', '$routeParams', function($scope, $routeParams) {
    
        $scope.search = $routeParams.searchParam || '<defaultSearchValue>';
    
    }]);
    
    myApp.controller('searchController',['$scope','$routeParams',函数($scope,$routeParams){
    $scope.search=$routeParams.searchParam | |“;
    }]);
    
    这正是我所需要的。非常感谢。这正是我所需要的。非常感谢。