【问题标题】:Pass scope variable over to new view将范围变量传递给新视图
【发布时间】:2013-06-14 12:20:06
【问题描述】:

我想将特定变量传递给 angularJS 中的新视图。

这就是我想要做的:

$scope.login_username_model = $scope.register_username_model;
$location.path('/confirmation');

在我的确认视图中,我将一个表单字段绑定到 login_username_model。

但是,当我点击确认视图时,我的表单是空的。我能做些什么来填充这个变量?或者我该如何调试?

【问题讨论】:

    标签: binding angularjs


    【解决方案1】:

    如果 location.path 正在使用不同的控制器调用新路由,那么您不能像这样传递变量,因为控制器会创建一个新范围。

    您最好的选择(在 90% 的情况下)是创建一个注入到两个控制器中的服务。然后,您可以在更改路由/视图之前将用户信息传递给服务,然后再将其取回,因为服务数据在路由更改时是持久的。

    这是一个简单的设置:(不是我做的)

    https://gist.github.com/exclsr/3595424

    如果它是同一个控制器,那么你的路由配置中有一个设置可能会起作用:

    reloadOnSearch: false
    

    您可以为每条路线设置此项。

    【讨论】:

    • 是同一个控制器。但是,在 $location.path() 更改后,控制器的状态似乎已重置。 angularJS 的行为是这样的吗?
    • 是的,位置更改的默认设置是重新加载。您可以在路由配置中设置 reloadOnSearch: false。
    猜你喜欢
    • 2013-07-31
    • 1970-01-01
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    • 2012-04-25
    • 1970-01-01
    • 2013-04-20
    相关资源
    最近更新 更多