オブジェクト (テキスト入力にあるものではない) を返す外部オートコンプリート関数を使用しており、このオブジェクトを角度で使用したいと考えています。今、私はそれを行うために rootScope を使用しています:
function change(field, value) {
var appElement = document.querySelector('[ng-app=app]');
var $scope = angular.element(appElement).scope();
$scope.$apply(function() {
if (field) {
$scope.partner = value;
}
else {
$scope.keyword = value;
}
});
};
これは正常に動作しますが、外部から角度を操作するためのよりクリーンな方法があるかどうかを知りたいと思いました(セット関数のように)。私はAngularにかなり慣れていないので、これがばかげた質問である場合は事前にお詫び申し上げます。
ありがとう!
編集:ここに私のコントローラーがあります:
app.controller('mainController', function($rootScope, $routeParams, $location) {
$rootScope.partner = {}
$rootScope.partner.id = $routeParams.id;
$rootScope.partner.name = $routeParams.name;
$rootScope.keyword = $routeParams.keyword;
updateFields($rootScope.partner.name, $rootScope.keyword);
$rootScope.$watch('[partner,keyword]', function () {
$location.search('name', $rootScope.partner.name);
$location.search('id', $rootScope.partner.id);
$location.search('keyword', $rootScope.keyword);
}, true);
});
URLでqueryparamsを使用し、オートコンプリートによって変数が変更されたときにそれらを更新するだけです。