我正在使用一个外部自动完成函数,它返回一个对象(不是文本输入中的内容),我想以角度使用这个对象。现在我正在使用 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 交互(如 set 函数)。我对角度很陌生,所以如果这是一个愚蠢的问题,我提前道歉。
谢谢!
编辑:这是我的控制器:
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 中的查询参数并在自动完成更改变量时更新它们