【问题标题】:Send data from view to controller, then to another view将数据从视图发送到控制器,然后发送到另一个视图
【发布时间】:2016-09-08 19:11:12
【问题描述】:

我正在尝试将变量发送到控制器,然后在另一个视图中使用此变量。

View1.html 变种猫 = 5;

Controller.js //获取 cat=5 变量

View2.html // 也从 Controller 中获取 cat=5

View2.html 必须检查 var cat=5 是否已从 View1.html 更改以更改 View2.html 中的某些链接

尝试使用 ng-init 但无法在其值中放入变量,我试图传递的值是我从 UrlParameter 获得的变量。

还尝试使用发布-订阅频道。但是两个视图是同时加载的,View2.html 会在设置之前尝试从 View1.html 中获取值。

还尝试使用 $scope 和 ng-model,使用隐藏的输入字段,但显然,它只在我输入时获取值,所以,如果我直接分配一个值,它不会被保存。

这就是我现在拥有的:

view1.html

$('.listaPromociones').append
    ('<input type="hidden" ng-model="newCategory" value="'+cat+'"/>{{newCategory}}...

JS

 $scope.categoryId= $scope.newCategory;

view2.html

var link = 'http://localhost/principal.html?cat={{categoryId}}';

如果您需要更多代码部分,请告诉我:

http://embed.plnkr.co/Gfwh4SKnJSnyl59jTw3j/

【问题讨论】:

    标签: jquery html angularjs


    【解决方案1】:

    您在两个视图中使用相同的控制器吗?如果是,您可以在视图 2 中引用该变量,但这不是一个好习惯,您应该创建另一个与视图 2 绑定的控制器,如果我理解,您可以使用服务或通过参数在它们之间共享此值你的问题,这是我的看法。

    【讨论】:

      【解决方案2】:

      1.- 不要将 angular 与 jquery 混合来操作 DOM,这不是 angular 方式,可能会导致冲突、错误和问题

      2.- 不要在任何地方混合脚本和链接标签,这不是一个好习惯

      现在要解决您的问题,您可以做两件事:您可以创建一个 service 来保持您的值,并创建一个 watch 用于值更改以自定义您想要的行为,或者您将此变量绑定到 rootscope 并观看此在更改时触发回调的值...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-23
        • 1970-01-01
        相关资源
        最近更新 更多