我在理解 Angular 指令中的孤立范围时遇到了一些麻烦。我已经阅读了官方文档,观看了很多有关该主题的视频,所以现在我知道它们的目的是什么,但我不确定如何使用它们。
这是一个简单的例子。
我创建了一个名为searchBox
(查看完整源代码和演示)的指令
var myApp = angular.module('myApp', []);
myApp.directive('searchBox', function($timeout) {
return {
restrict: 'A',
scope: true,
link: function(scope, element) {
scope.open = false;
// Show search input
scope.showInput = function() {
scope.open = true;
// Focus the input
$timeout(function() {
element.find('input').focus();
}, 0);
};
// Hide search input
scope.hideInput = function() {
scope.open = false;
};
}
}
});
这实际上按预期工作。但是,我想隔离指令的范围,但是如果我更改scope: true
为scope: {}
(查看完整源代码和演示))它不再起作用,但我在控制台中看不到任何错误。
我确定这是我做错的基本事情,但我真的希望有人能睁开我的眼睛并帮助我理解这一点。