Javascript 节点Webkit函数中的Angularjs失去$scope

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

我在Node Webkit中开发的一个应用程序中使用了这个简单的控制器:

(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完全摆脱了函数本身所在的上下文