如何以 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 是什么吗?
这里有一个将 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 是什么吗?