我正在使用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
元素替换。没有骰子。
答案 0 :(得分:1)
问题确实是input
元素,将其更改为span
就可以了。当我之前尝试使用div
时,可能会缓存该页面。
我认为问题是由IE处理输入类型更改的方式以及Angular替换指令的源元素的方式引起的。