私がangularjsを初めて使用するという免責事項:)
サービスに委任するコントローラーがあり、プロパティを設定した後に scope.apply できるように $scope を保持しようとしています。
var Build = function($scope, $http, mango) {
var scope = $scope;
$scope.BuildManagerSubmit = function(selectedProfile) {
mango.buildMango(selectedProfile.def, function(profiledef) {
// bunch of property assignments on selectedProfile ...
scope.$apply();
}, scope);
};
};
controllers.controller('Build', ['$scope', '$http', 'mango', Build]);
クロージャーを使用してスコープを保存し、それをサービスに渡していることに注意してください (簡潔にするために省略しています)。サービスは cb.call(context, ...) のようにコールバックするので、スコープへのアクセスを維持します。これはすべて正常に機能していますが、もっと良いイディオムがあるかどうかが気になります。このようなサービスに委任するときに $scope を維持する例はあまり見当たりません。
編集: このアプリケーションは node-webkit を使用しており、「mango」サービスは基本的にファイル システムとやり取りしてシェル スクリプトなどを呼び出します。