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;
}]);