Angularjs如何从UI中更改$rootScope变量

Angularjs how to change $rootScope variables from UI

本文关键字:rootScope 变量 UI Angularjs      更新时间:2023-09-26

我正在制作一个动态的网页与角,从主页的内容应该改变,但为了避免写太多的代码,我决定使其通用,但要知道什么类型的内容被请求,我需要从链接/按钮发送这个参数与ng-click,这不会是一个问题,但当我必须改变控制器我不能读取参数。

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

这里我试图改变$rootScope变量名为name,我尝试

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

甚至有一个服务功能,但看起来不工作(我不太了解angularjs,所以我尝试了)

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

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

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

我怎么能改变一个rootScope变量从html?

这是一个在两个控制器之间使用共享服务而不使用$rootscope的例子。http://plnkr.co/edit/maKNHgVH20GxTJeCEveh

注意ng-click调用的是业务函数。我假设这个函数是用来更改名称的。

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

您真的不应该那么频繁地使用$rootScope,更不用说从模板中修改它了。也就是说,您可以将$rootScope分配给$scope变量,并像普通的作用域变量一样从模板中访问。恰好

控制器:$scope.rs = $rootScope

模板:rs.name = 'Name Change'

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