Javascript 角度指令未绑定到视图
为什么我的角度指令不一定要查看Javascript 角度指令未绑定到视图,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,为什么我的角度指令不一定要查看 (function() { 'use strict'; app.directive('projectSearchModal', projectSearchModal); projectSearchModal.$inject = ['$modal', '$scope', 'ProjectService']; function projectSearchModal($modal, $scope, ProjectService) {
(function() {
'use strict';
app.directive('projectSearchModal', projectSearchModal);
projectSearchModal.$inject = ['$modal', '$scope', 'ProjectService'];
function projectSearchModal($modal, $scope, ProjectService) {
// Usage:
// <projectSearch></projectSearch>
// Creates:
//
var directive = {
link: link,
restrict: 'A',
scope: {
project: '=',
finishCallback: '=',
comment: '='
}
};
return directive;
function link(scope, element, attrs) {}
})()
(函数(){
"严格使用",;
应用指令(“projectSearchModal”,projectSearchModal);
projectSearchModal.$inject=['$modal','$scope','ProjectService'];
函数projectSearchModal($modal,$scope,ProjectService){
//用法:
//
//创建:
//
var指令={
链接:链接,
限制:“A”,
范围:{
项目:“=”,
finishCallback:“=”,
注释:'='
}
};
返回指令;
函数链接(范围、元素、属性){}
})()
我这样称呼它:
<button project-search-modal="" project="project" finish-callback="wipeProjectInfoFromComment" comment="currentstakeholdercomment"
class="btn btn-primary"><i class="glyphicon glyphicon-search"></i> Search Projects</button>
搜索项目
指令确实进入了浏览器,但没有被执行(即,我在链接定义上放置了一个断点,但它从未被命中)指令的问题(除了缺少
}
,我猜是复制粘贴错误)是您试图将不存在的服务$scope
注入指令。这没有意义,因为$scope
不是可共享的服务,您可以注入指令/其他服务,因为它与特定的HTMLElement绑定。所以角度误差
您不需要$scope
,因为在link函数中已经有一个可用的
正确的指令定义:
(function() {
'use strict';
app.directive('projectSearchModal', projectSearchModal);
function projectSearchModal($modal, ProjectService) {
var directive = {
link: link,
restrict: 'A',
scope: {
project: '=',
finishCallback: '=',
comment: '='
}
};
return directive;
function link(scope, element, attrs) {
console.log('link');
}
}
projectSearchModal.$inject = ['$modal', 'ProjectService'];
})();
好的,结果证明我没有在正确的MVC布局页面中添加模块(包含指令)(有很多模块在这个项目中浮动)。我认为问题是“项目搜索模式=”“”,只要是“项目搜索模式”@shieldstroy不,这不是问题,另一种方式不起作用。谢谢你的回复。我之所以注入scope,是因为我想使用$scope函数($on、$emit、$broadcast等)。我假设这些函数在我的作用域上不可用,因为我将它声明为只有三个属性的对象。我一直认为$scope是一个提供正确范围的服务。为什么我可以将$scope注入控制器?这没有帮助。事实上,我的问题不在于角度是投掷错误。我的问题是angular什么都不做,既不抛出错误也不执行指令……如果它不执行指令,那么可能是您没有正确配置HTML。你能分享HTML源代码吗?我想知道了。我将发布一个答案。