Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 角度指令在某些情况下不显示_Angularjs_Angularjs Directive - Fatal编程技术网

Angularjs 角度指令在某些情况下不显示

Angularjs 角度指令在某些情况下不显示,angularjs,angularjs-directive,Angularjs,Angularjs Directive,感谢您对这个问题的关注 我是angularjs方面的新手,当我使用angularjs指令时,我有一些问题。这是我的问题 我有这样的指示: app.directive('dbmodeSelector', function() { var tpl = ' <select class="atonFormSelect" ng-model="dbmode" ng-options="m for m in dbmodeList" ng-change="changeDbmode()" required&g

感谢您对这个问题的关注

我是
angularjs
方面的新手,当我使用
angularjs指令时,我有一些问题。这是我的问题

我有这样的指示:

app.directive('dbmodeSelector', function() {
var tpl = ' <select class="atonFormSelect" ng-model="dbmode" ng-options="m for m in dbmodeList" ng-change="changeDbmode()" required> \
                    </select>';
return {
    transclude : true,
    restrict : 'E',
    scope : {
        dbmode : '=',
        dbmodeList : '=',
        changeAction : '&'
    },
    template : tpl,
    link : function(scope, elem, attrs) {
        scope.changeDbmode = function() {
            var func = scope.changeAction();
            if(func) {
                func(scope.dbmode);
            }
        }
    }
}});
<dbmode-selector dbmode="dbmode" dbmode-list="dbmodeList"></dbmode-selector>
app.directive('dbmodeSelector',function(){
增值税\
';
返回{
是的,
限制:'E',
范围:{
dbmode:“=”,
DBModelList:“=”,
changeAction:“&”
},
模板:第三方物流,
链接:功能(范围、要素、属性){
scope.changedMode=函数(){
var func=scope.changeAction();
if(func){
func(scope.dbmode);
}
}
}
}});
我这样使用这个指令:

app.directive('dbmodeSelector', function() {
var tpl = ' <select class="atonFormSelect" ng-model="dbmode" ng-options="m for m in dbmodeList" ng-change="changeDbmode()" required> \
                    </select>';
return {
    transclude : true,
    restrict : 'E',
    scope : {
        dbmode : '=',
        dbmodeList : '=',
        changeAction : '&'
    },
    template : tpl,
    link : function(scope, elem, attrs) {
        scope.changeDbmode = function() {
            var func = scope.changeAction();
            if(func) {
                func(scope.dbmode);
            }
        }
    }
}});
<dbmode-selector dbmode="dbmode" dbmode-list="dbmodeList"></dbmode-selector>

它在某些情况下正确显示,当我在chrome developer tools中查看这些情况时,该指令的代码如下所示:

在其他情况下无法正确显示,chrome developer工具会显示如下代码:

app.directive('dbmodeSelector', function() {
var tpl = ' <select class="atonFormSelect" ng-model="dbmode" ng-options="m for m in dbmodeList" ng-change="changeDbmode()" required> \
                    </select>';
return {
    transclude : true,
    restrict : 'E',
    scope : {
        dbmode : '=',
        dbmodeList : '=',
        changeAction : '&'
    },
    template : tpl,
    link : function(scope, elem, attrs) {
        scope.changeDbmode = function() {
            var func = scope.changeAction();
            if(func) {
                func(scope.dbmode);
            }
        }
    }
}});
<dbmode-selector dbmode="dbmode" dbmode-list="dbmodeList"></dbmode-selector>

它们之间的区别在于,在正确的情况下,
dbmode选择器
使用模板作为其子元素;在错误的情况下,
dbmodeselector
中没有子元素

问题:


为什么会有这种差异?差异是否会影响此
dbmode选择器的可见性

,它在什么时候没有正确显示?您是否手动将其附加到html中,或者以与正确显示时不同的方式使用它;您已通过
dbmode='appTair.dbmode'
这是有效的模式吗?因为这就是您在模板中用作ng模式的内容。与问题中显示的方式相同。但在chrome开发者工具的“元素”选项卡中有所不同,比如我在question@PM. 这是一个有效的模型,我将其记录在控制台中,它显示了正确的值。您使用
指令的方式可能会有所不同,这会阻止Angular对其进行编译。是否可以显示非工作案例的父标记?