IE8中的AngularJS - 错误:不支持此命令

时间:2014-05-24 15:39:12

标签: angularjs internet-explorer-8 angularjs-directive

我正在使用Angular开发SPA,该应用需要IE8 +支持。我最近将一个搜索功能引入了一个指令。添加指令之前的git提交工作正常,因此我确定错误是由指令引起的。这是指令代码:

myApp.directive('genericSearch', function() {
    return {
        restrict : 'A',
        replace: true,
        scope : {
            interface: '=genericSearch'
        },
        controller: 'genericSearchController',
        template : '<input class="generic-search" placeholder="Search" data-ng-model="model.searchText" data-ng-change="beginSearch()" />',
        link : function(scope, element, attrs) {
            scope.model = scope.interface.model || function() { };
            scope.finished = scope.interface.finished || function() { };
            scope.endpoint = scope.interface.endpoint || 'searchDirectory';
        }
    };
});

在我的视图模板中,指令因此启动:

<input data-generic-search="searchInterface" />

现在当我导航到带有此指令的页面时,我得到一个引用ng-view元素的错误: Error: This command is not supported.<:section class="is-scrollable ng-scope" data-ng-view="" ng-1400945355054="29">

知道这个错误来自哪里?我已经尝试了HTML5样板,添加了不受支持的元素,例如section,但是在我添加指令之前它已经工作了所以我不认为这是问题。

修改

该指令已在IE9 +和Chrome中得到确认。 我猜测它与输入元素有关。我尝试将原始元素更改为div,后者会被指令模板中的input元素替换。没有骰子。

1 个答案:

答案 0 :(得分:1)

问题确实是input元素,将其更改为span就可以了。当我之前尝试使用div时,可能会缓存该页面。

我认为问题是由IE处理输入类型更改的方式以及Angular替换指令的源元素的方式引起的。