Angular - 绑定URL参数到输入文本不起作用

时间:2017-05-30 15:14:13

标签: angularjs data-binding

我正在尝试单独使用Angular将URL参数'email'绑定到输入字段的值。期望的效果是,只要URL中的电子邮件参数发生更改,输入字段将更改为与新电子邮件参数vaue匹配。我在我的js文件中这样做:

$scope.inputEmail = $location.search()['email']

要修改输入字段的值,我使用的是ng-model,'inputEmail'。当我这样做时,我更改URL电子邮件参数时输入字段的值不会更改。我究竟做错了什么?

3 个答案:

答案 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和它的依赖项。谢谢你的帮助!