Javascript 如何在角度视图中发送第二视图中的参数值?

Javascript 如何在角度视图中发送第二视图中的参数值?,javascript,jquery,angularjs,angularjs-directive,Javascript,Jquery,Angularjs,Angularjs Directive,您能告诉我如何在第二个视图中显示参数值吗?实际上我制作了一个表单,其中有两个字段:名称和类。当用户按(填写字段后)添加它时,会在下面生成一行。单击“我现在获得名称和类的值”,我想在下一页显示该名称和值。我们可以显示这个吗 谢谢如评论中所述,您可以使用$routeParams来实现这一点,但是如果您想在多个控制器之间共享数据,那么一种常见的实现方法是使用一个服务,该服务向注入它的每个控制器公开getter和setter app.factory('Data', function(){ va

您能告诉我如何在第二个视图中显示参数值吗?实际上我制作了一个表单,其中有两个字段:名称和类。当用户按(填写字段后)添加它时,会在下面生成一行。单击“我现在获得名称和类的值”,我想在下一页显示该名称和值。我们可以显示这个吗


谢谢

如评论中所述,您可以使用
$routeParams
来实现这一点,但是如果您想在多个控制器之间共享数据,那么一种常见的实现方法是使用一个服务,该服务向注入它的每个控制器公开getter和setter

app.factory('Data', function(){
    var data =
        {
            name: '',
            class: ''
        };

    return {
        getName: function () {
            return data.name;
        },
        setName: function (name) {
            data.name = name;
        },
        getClass: function () {
            return data.class;
        },
        setClass: function (klass) {
            //class is reserved word :)
            data.class = klass;
        },
    };
});
然后共享数据:

app.controller("ctrl",['$scope',"$location","Data",function(s,$location,Data){
    s.students = [];

    s.add = function() {

        s.students.push({
            inputName : angular.copy(s.inputName),
            inputclass : angular.copy(s.inputclass)
        });

        Data.setName(s.inputName);
        Data.setClass(s.inputclass);

        s.inputclass='';
        s.inputName='';
    }
    s.getListClick=function(name,className){
        alert(name+":"+className);
        $location.path('/navigation')

    }

}]);

app.controller("secondCtrl",['$scope',"Data",function(s,Data){
    s.name = Data.getName();
    s.class = Data.getClass();
}]);
然后,在每个控制器中,您可以使用getter检查数据更新,或使用
$watch
自动检查更改:

s.$watch(function () { return Data.getName(); }, function (newVal) {
    if (newValue) {
      s.name = newVal;
    }
});
这是普朗克:


编辑:

以下是如何使用
ngRoute
$routeParams
在视图之间传递参数(使用您提供的代码):

然后在控制器中,您可以使用:

$location.path('/navigation/' + name);
要阅读
$routeParams

app.controller("secondCtrl",['$scope',"$routeParams",function(s,routeParams){
  s.name = routeParams.name;
}]);

您的意思是您有两个参数要发送到下一页?如果是,您可以使用$routeParams,是的..没错。您是对的。我认为有办法通过控制器?当数据在两个控制器之间传递时?你能改变PlunkerThank.我正在寻找相同的..实际上有人告诉我使用routparam和search param也可以这样做..你能同时使用这两个术语吗?你能解释一下我们如何使用route paramSure实现吗?让我设置一个plunkr,一秒钟。非常感谢..很好的解决方案你知道这个问题吗
$location.path('/navigation/' + name);
app.controller("secondCtrl",['$scope',"$routeParams",function(s,routeParams){
  s.name = routeParams.name;
}]);