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的引用
- 当
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');
});