我正在创建一个带有角度的动态网页,主页面中的内容应该会改变,但为了避免编写太多代码,我决定将其设为通用,但要知道我要求的内容类型是什么通过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变量?
答案 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')"