【问题标题】:How to change the AngularJS scope in a different HTML page?如何在不同的 HTML 页面中更改 AngularJS 范围?
【发布时间】:2021-03-23 14:50:12
【问题描述】:

我希望有人可以帮助我解决这个问题,这真的让我发疯:P 我创建了一个 Plunker 来说明这个问题。在此处查看演示 http://plnkr.co/edit/BRlDgKYlE87Bh3t53tpZ?p=preview

 My code is in the plunker.

所以我的问题是我无法在我所在的另一个 html 视图中更改我的范围值。正如 Plunker 所示,我在 index.html 中有两个按钮;按钮 1 和按钮 2。当我单击 button1 时,我希望 scope.test 更改为“button1”,当我单击 button2 时,它应该更改为“button2”,该值存在于 index2.html 中。正如您在 console.log 消息中看到的那样,这永远不会发生。我使用 rootscope,但是如果范围存在于同一个 html 页面中而不是另一个页面中,我仍然只能更改值。请帮忙!

【问题讨论】:

    标签: angularjs angularjs-scope steroids rootscope


    【解决方案1】:

    您编写的不是单页应用程序,html2 不知道您在 app.js 中的 Angular 代码。您需要使用路由,并且在角度路由的情况下,您应该使用服务在两个“页面”或视图之间共享状态

    编辑

    看看这个plunkr

    在这里,您将看到 Angular 路由的实际应用以及可以在两个控制器之间共享的服务。在两个页面之间切换时,它们所附加的控制器会被销毁,因此从第1页转到第2页意味着contollerA不再存在,因此您需要使用该服务来存储从第1页单击的内容的状态.

    希望这是有道理的!

    【讨论】:

    • 谢谢,你能给我看一个我在 Plunker 中的代码示例吗?
    • 虽然理论上可以回答这个问题,it would be preferable 在这里包含答案的基本部分,并提供链接以供参考。请edit发帖并更新答案。
    • 请将外部托管代码编辑到帖子中;这样做将确保即使链接断开,它仍然有用。我的脚本 is not allowed to do this 因为潜在的许可问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 1970-01-01
    相关资源
    最近更新 更多