我正在尝试单独使用Angular将URL参数'email'绑定到输入字段的值。期望的效果是,只要URL中的电子邮件参数发生更改,输入字段将更改为与新电子邮件参数vaue匹配。我在我的js文件中这样做:
$scope.inputEmail = $location.search()['email']
要修改输入字段的值,我使用的是ng-model,'inputEmail'。当我这样做时,我更改URL电子邮件参数时输入字段的值不会更改。我究竟做错了什么?
答案 0 :(得分:1)
不确定这是否有助于来自Angular文档 https://docs.angularjs.org/api/ng/service/ $位置
// given URL http://example.com/#/some/path?foo=bar&baz=xoxo
var searchObject = $location.search();
// => {foo: 'bar', baz: 'xoxo'}
然后,为您的例子:
$scope.auxSearch = $location.search();
$scope.inputEmail = $scope.auxSearch.email;
可能只是,不确定这是否会起作用:
$scope.inputEmail = $location.search().email;
答案 1 :(得分:0)
你可以试试这个:
$scope.$on('$routeUpdate', function(){
$scope.inputEmail = $location.search()['email']
});
请注意,您必须在reloadOnSearch
可用的路线上将false
设置为$routeUpdate
否则你可以使用$ rootscope:
$rootScope.$on('$locationChangeSuccess', function(event){
$scope.inputEmail = $location.search()['email']
})
当您更改查询参数时,它将更新模型值
答案 2 :(得分:0)
我发现了我的问题,我忘了在我定义组件控制器的地方包含$ location和它的依赖项。谢谢你的帮助!