如何以 angular 方式处理 WinJS 事件?

How do I do WinJS events the angular way?

这里有一个将 Angular 与 WinJS 控件一起使用的好项目:https://github.com/winjs/angular-winjs。我已经在我的应用程序中很好地工作了。然而,它并没有真正涵盖 angular 在 WinJS 的其他部分的使用。

我正在开发 windows 10 phone,我有这样的代码:

 var app = WinJS.Application; 
 var activation = Windows.ApplicationModel.Activation; 
 app.onactivated = function (args) { 

我如何修改我的 app.onactivated 分配以 angular 方式做事,这样我就可以使用 $providers 并修改 $scope 变量等等?

$providers 是指 angular 提供的服务(如 $http、$location 等)吗?

如果是这样,您可以将 onactivated 方法放在控制器回调定义函数中(见下面的代码),以便它可以使用 angular 服务。

JS:

(function () {
"use strict";

var app = WinJS.Application;
var activation = Windows.ApplicationModel.Activation;
var myApp = angular.module("myApp", ["winjs"]);
var myController = myApp.controller("myController", function ($scope) {
    app.onactivated = function (args) {
        if (args.detail.kind === activation.ActivationKind.launch) {
            if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
                $scope.$apply(function () {
                    $scope.test = "The Scope.test has been changed!";
                });
            }
        args.setPromise(WinJS.UI.processAll());
        }
    };
});
app.start();
})(angular);

HTML:

<body class="win-type-body" ng-app="myApp">
<div ng-controller="myController">
<input type="text" ng-model="test"/>
   {{test}}
</div>

如果不是,你能告诉我 $providers 是什么吗?