12

我有一个创建输入字段的指令。我需要将此输入字段的 ng-model 属性设置为 $rootScope 变量的值。这背后的原因是我希望输入字段在布局中,并根据加载的页面绑定到不同的模型。我以为我会在每个控制器中设置这个全局变量并在指令中访问它。

ATM 变量是硬编码的

App.run(function($rootScope){
    $rootScope.mymodel = 'search.name';
})

和指令

Directives.directive('inputFilter', function(){
    return{
        restrict: 'E',
        replace:true,
        controller: function($scope, $rootScope){
            console.log($scope.mymodel);
            console.log($rootScope.mymodel)

        },
        template: '<input class="filter" type="text" ng-model="mymodel" placeholder="Nach filtern">'
    }

});

它被渲染为

<input class="filter ng-pristine ng-valid" type="text" ng-model="mymodel" placeholder="Filter">

输入字段中的文本是 mymodel 变量的值。console.log 显示

search.name
search.name  

任何人都可以对这个问题有所了解吗?

4

1 回答 1

13

我想你想要的是

template: '<input class="filter" type="text" ng-model="' 
  + $rootScope.mymodel + '" placeholder="Nach filtern">'

小提琴

请注意,您将需要注入$rootScope您的指令:

Directives.directive('inputFilter', function($rootScope) {
于 2013-03-15T14:38:17.820 回答