Angularjs如何从UI更改$ rootScope变量

时间:2015-10-16 21:52:04

标签: javascript angularjs

我正在创建一个带有角度的动态网页,主页面中的内容应该会改变,但为了避免编写太多代码,我决定将其设为通用,但要知道我要求的内容类型是什么通过ng-click从链接/按钮发送此参数,这可能是一个问题,但是当我必须更改控制器时,我无法读取参数。

ng-click="name='Name change'"

这里我试图更改名为name的$ rootScope变量,我试过

ng-click="$rootScope.name='Name change'"

即使有服务功能,但看起来不起作用(我不太了解angularjs所以我试过)

 ng-click="$service.cambiarTipo='Name change'"

我做了一个羽毛http://plnkr.co/edit/1BN76SbUAHuOSHs02gpL?p=preview

如果你检查控制台日志,你会看到变量是未定义的,显然如果我从控制器更改$ rootScope.name我可以从另一个控制器看到它,但是这没用,因为我需要来自用户不是控制器。

我如何从html更改rootScope变量?

2 个答案:

答案 0 :(得分:1)

你真的不应该使用$ rootScope,更不用说从模板中修改它了。话虽如此,您可以将$ rootScope分配给$ scope变量,并从模板中访问,就像普通的范围变量一样。 plunker

控制器: $scope.rs = $rootScope

模板: rs.name = 'Name Change'

我想重申,这不是你应该做的事情,因为它违背了棱角分明的方式。

答案 1 :(得分:1)

这里有一个人在两个控制器之间使用共享服务而根本不使用$ rootscope。 http://plnkr.co/edit/maKNHgVH20GxTJeCEveh

请注意,ng-click正在调用服务功能。我假设该功能是为了更改名称。

ng-click="service.cambiarTipo('Name change')"