Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从ng视图设置变量_Javascript_Templates_Angularjs - Fatal编程技术网

Javascript 从ng视图设置变量

Javascript 从ng视图设置变量,javascript,templates,angularjs,Javascript,Templates,Angularjs,我正在努力学习AngularJS,我遇到了一个我很难解决的问题 我有一个基于此模板的小应用程序 <!doctype html> <html lang="en" ng-app="fff"> <head> <meta charset="utf-8" /> <head> <body class="{{bodyClass}}"> <div ng-view></div>

我正在努力学习AngularJS,我遇到了一个我很难解决的问题

我有一个基于此模板的小应用程序

<!doctype html>
<html lang="en" ng-app="fff">
  <head>
    <meta charset="utf-8" />
  <head>

  <body class="{{bodyClass}}"> 
    <div ng-view></div>
    <script src="/static/js/all.js"></script>
  </body>
</html>


我想在
ng视图中更改
bodyClass
。在这种情况下,最佳实践解决方案是什么?

您可以通过将控制器放在那里,使用路由更改来尝试这种方法

app.run(function($rootScope) {
   $rootScope.$on('$routeChangeSuccess', function(ev,data) {   
     if (data.$route && data.$route.controller)
       $rootScope.controller = data.$route.controller;
   })
});
并将
更改为


选中

身体中使用的变量必须来自某个控制器。在ng视图中,您很可能还有一个带有控制器的页面。此控制器现在是“主体”控制器的子控制器。这意味着您可以从“子”控制器访问父变量


请阅读以下内容:。这是一本非常非常好的关于范围的书。我甚至认为这是一本必读的书。

最简单的方法是获取对象并在其上定义bodyClass。差不多

$scope.appStyles={bodyClass:'default'}

此属性应在
ng view
html的父级上定义的控制器上定义

现在您将在all
ng视图
scope中获得这个
appStyle
对象,因为它们继承父$scope。这也意味着你可以在任何地方改变它

$scope.appStyles.bodyClass='newClass'


更好的方法是将这些设置移动到服务和共享中。

使用ng class指令。我想这会有帮助。我如何更改模板中的变量?您想在应用程序中使用值更改此{{bodyClass}}还是想从{{bodyClass}更改bodyClass?我想在ng视图模板中更改bodyClass。对于登录页面,我需要登录页面类;对于注册页面,我需要注册页面样式。