Javascript 节点Webkit函数中的Angularjs失去$scope
我在Node Webkit中开发的一个应用程序中使用了这个简单的控制器:Javascript 节点Webkit函数中的Angularjs失去$scope,javascript,angularjs,node-webkit,Javascript,Angularjs,Node Webkit,我在Node Webkit中开发的一个应用程序中使用了这个简单的控制器: (function() { 'use strict'; angular .module('antApp') .controller('StartMenuController', StartMenuController); function StartMenuController($scope, $rootScope, $state){ var self = $scope; self.ap
(function() {
'use strict';
angular
.module('antApp')
.controller('StartMenuController', StartMenuController);
function StartMenuController($scope, $rootScope, $state){
var self = $scope;
self.app = $rootScope;
self.init = init;
self.startGame = startGame;
init();
function init(){
};
function startGame (){
$state.go('main');
};
};
})()
(对我来说)奇怪的是,当我点击html中的“StartName”按钮时:
<div id="startMenuPage" class="container-fluid full-page">
<div class="row">
<div class="col-md-4 col-md-offset-4" style="text-align: center">
<a ng-click="startGame()" class="btn btn-info sound-button">New Game</a>
</div>
</div>
新游戏
“self
”变量,即对$scope
的引用,被浏览器(nw)本身的“窗口
”对象替换。即使是$scope
和$rootScope
,但$state
变量的情况并非如此
这个场景是我在开发适当的web应用程序时多次使用的常见场景,我确信我在NW部分遗漏了一些东西
提前谢谢你我不能重复你的问题。我做了一个测试,效果很好。唯一的事情是我必须把.module改成
.module('antApp',[])代码>你能用小提琴重现这个问题吗?谢谢你,雅各布!我不想提及我正在使用ui.router,这可能是我没有将作用域传递给变量的原因吗?忘了提及,在常见的web环境中(node/iis使用通用浏览器,一切正常。您的小提琴牙的代码设计有点落后。如果使用ControllerAs
语法,则控制器将作为对象直接添加到绑定控制器的作用域中。这将为您提供$scope.controller.property
或控制ler.property
在HTML中,其中隐含了$scope
。然后,您的控制器可以使用self=this
,并将您的属性自动绑定为$scope.controller
,而根本不需要引用$scope
。谢谢您的建议,我刚刚完全转换为ControllerAs语法,但问题仍然存在l仍然存在。似乎Node Webkit完全摆脱了函数本身存在的上下文。我无法复制您的问题。我做了一个测试,它工作正常。唯一的问题是我必须将.module更改为.module('antApp',[])
您能用小提琴重新创建问题吗?谢谢Jacob!我不想提及我正在使用ui.router,这可能是我不将作用域传递给变量的原因吗?忘记提及,在常见的web环境中(node/iis使用通用浏览器,一切正常。您的小提琴牙的代码设计有点落后。如果使用ControllerAs
语法,则控制器将作为对象直接添加到绑定控制器的作用域中。这将为您提供$scope.controller.property
或控制ler.property
在HTML中,其中隐含了$scope
。然后,您的控制器可以使用self=this
,并将您的属性自动绑定为$scope.controller
,而根本不需要引用$scope
。谢谢您的建议,我刚刚完全转换为ControllerAs语法,但问题仍然存在l仍然存在。看来Node Webkit完全摆脱了函数本身所在的上下文