Javascript $scope不适用于我的angularjs应用程序

Javascript $scope不适用于我的angularjs应用程序,javascript,angularjs,Javascript,Angularjs,无法在我的视图中显示yo-homie,并询问原因 这是github回购协议 注意:这是我的母版页,所有javascript库都位于其中 我的视图(master.html) /static/javascripts/controllers.js 除非您没有显示所有代码,否则您将丢失“ng应用程序” ng app属性在哪里 您的HTML应该如下所示: <div ng-app="MyApp" ng-controller="MasterCtrl"> <div id="menu" c

无法在我的视图中显示
yo-homie
,并询问原因

这是github回购协议

注意:这是我的母版页,所有javascript库都位于其中

我的视图(master.html) /static/javascripts/controllers.js
除非您没有显示所有代码,否则您将丢失“ng应用程序”


ng app属性在哪里

您的HTML应该如下所示:

<div ng-app="MyApp" ng-controller="MasterCtrl">

  <div id="menu" class="pure-u-1">
     {{s_master}}
  </div>

</div>

{{s_master}}
和Javascript:

var app = angular.module('MyApp', []); app.controller('MasterCtrl', function ($scope) { $scope.s_master = "yo homie"; }); var-app=angular.module('MyApp',[]); 应用程序控制器('MasterCtrl',函数($scope){ $scope.s_master=“yo homie”; });
您发布的代码没有任何问题,我已将其放在上,并按照您的预期运行


可能是你的代码中有另一部分没有发布导致了这个问题

你的
app.js
几乎完全崩溃了。你有:

  • 调用函数时,对于
    ,没有对
    $routeProvider的引用
您应该在JavaScript控制台中看到一些错误

尝试更正你的
app.js
,阅读如下内容:

 var potato = angular.module('potato', ['ngRoute','ngCookies']).
 config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
    $routeProvider.when('/', {
      templateUrl: '/static/views/main.html',
      controller: 'IndexCtrl'
    }).
    when('/login',{
      templateUrl: '/static/views/login.html',
      controller: 'LoginCtrl'
    }).
    when('/register',{
      templateUrl: '/static/views/register.html',
      controller: 'RegisterCtrl'
    })

    /* some route and controller but the MasterCtrl is not  included */
    $locationProvider.html5Mode(true);
  }]);
正如@DumitruChirutac所建议的那样,我还建议您不要使用控制器的“全局”命名,而是在您的应用程序模块上定义它们


在此处工作:检查了由其引起的代码

app.get('*',function(req, res){
  res.render('master');
});
由于
res.render
客户端无法获取$scope值,请将其更改为

app.get('*',function(req, res){
  res.sendfile('./public/views/master.html');
}); 

问题是“哟,哥们儿”这个词。Angular不会在街上说话。第一个问题:你确定你在任何地方都不会出错吗?第二,在字符串后面缺少一个“;”(希望只是一个类型错误XD)第三个,真的是所有的字符串哟,伙计?????XDDDDDDIs您的javascript文件,其中在html中引用了控制器的定义(就像您引用angularjs文件的方式),除非您在html中定义了它?@Potato是的,javascript中的分号实际上是可选的;)该部分没有错误,javascript控制台中也没有任何内容?但我有它的计数吗?var potato=angular.module('potato',['ngRoute','ngCookies')。可能会显示所有代码?“var马铃薯”代码位于何处?另外,正如Sakuya84所问的,你在控制台中是否有任何错误?嘿,我刚刚为这个问题创建了一个repo,如果你有时间让repo对我来说工作正常,也许你可以检查一下(我不得不禁用mongodb的东西,因为我没有测试服务器)。我明白了:为什么在应用程序模块上定义它们更好?实际上,我也将控制器放在一个单独的文件中。这是一种不好的做法吗?污染全局名称空间始终是一种不好的做法。Angular提供的模块允许我们不进行这种污染。单独的文件很好(每个控制器都有一个单独的文件),但我认为最好尽可能将所有内容都排除在全局名称空间之外。我看不出这两者之间有什么关系-两者都以相同的方式工作,而且
render
调用对客户端没有任何影响。是的,这是因为他试图在服务器端呈现母版页,只需下载代码并尝试我的解决方案 var app = angular.module('MyApp', []); app.controller('MasterCtrl', function ($scope) { $scope.s_master = "yo homie"; });
 var potato = angular.module('potato', ['ngRoute','ngCookies']).
 config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
    $routeProvider.when('/', {
      templateUrl: '/static/views/main.html',
      controller: 'IndexCtrl'
    }).
    when('/login',{
      templateUrl: '/static/views/login.html',
      controller: 'LoginCtrl'
    }).
    when('/register',{
      templateUrl: '/static/views/register.html',
      controller: 'RegisterCtrl'
    })

    /* some route and controller but the MasterCtrl is not  included */
    $locationProvider.html5Mode(true);
  }]);
app.get('*',function(req, res){
  res.render('master');
});
app.get('*',function(req, res){
  res.sendfile('./public/views/master.html');
});