Angularjs 类型错误:i.match不是一个函数
我一直在研究drupal angularjs模块。我已经安装了bootstrap ui,运行良好。但当我使用模态盒时,它不起作用 控制器内的代码:Angularjs 类型错误:i.match不是一个函数,angularjs,drupal-7,angular-ui-bootstrap,Angularjs,Drupal 7,Angular Ui Bootstrap,我一直在研究drupal angularjs模块。我已经安装了bootstrap ui,运行良好。但当我使用模态盒时,它不起作用 控制器内的代码: $scope.alertOnEventClick = function( event, allDay, jsEvent, view ){ $scope.alertMessage = (event.title + ' was clicked '); console.log($modal); var modalInsta
$scope.alertOnEventClick = function( event, allDay, jsEvent, view ){
$scope.alertMessage = (event.title + ' was clicked ');
console.log($modal);
var modalInstance = $modal.open({
//templateUrl: Drupal.settings.angularjsApp.basePath + '/ng_node/calender/popup',
template: "<div class='modal-header'><h3 class='modal-title'>I'm a modal!</h3>" +
"</div><div class='modal-body'><ul><li>jfksdfhjksd</li><li>jfksdfhjksd</li><li>jfksdfhjksd</li></ul></div>"+
"<div class='modal-footer'><button class='btn btn-primary'>OK</button>" +
"<button class='btn btn-warning'>Cancel</button></div>",
controller: ModalInstanceCtrl,
scope: $scope
});
function ModalInstanceCtrl($scope, $modalInstance) {
console.log("controller class called")
};
$scope.alertOnEventClick=函数(事件、全天、jsEvent、视图){
$scope.alertMessage=(已单击event.title+);
console.log($modal);
var modalInstance=$modal.open({
//templateUrl:Drupal.settings.angularjsApp.basePath+'/ng_node/calendar/popup',
模板:“我是模态!”+
“- jfksdfhjksd
- jfksdfhjksd
- jfksdfhjksd
”+
“好的”+
“取消”,
控制器:ModalInstanceCtrl,
范围:$scope
});
函数ModalInstanceCtrl($scope,$modalInstance){
log(“被调用的控制器类”)
};
我仍然面临bootstrap ui弹出模型的问题。作用域:$scope在我看来不太合适。我刚刚解决了一个类似的不起眼的角度问题,通过执行
app.directive('contactAssociation', function () {
return {
templateUrl: 'contactAssociation.html',
restrict: 'E',
scope: {
contact:"=",
isSelected : false
},
controller: contactAssociationController
};
仅将指令定义中的范围分配更改为:
app.directive('contactAssociation', function () {
return {
templateUrl: 'contactAssociation.html',
restrict: 'E',
scope: {
contact:"=",
},
controller: contactAssociationController
};
一切又开始工作了。angular似乎因为不正确的范围分配而抛出了一些奇怪的错误,并且没有充分检查问题
以下是指令定义的有效范围选项
作用域:true//继承父作用域
作用域:false//使用父作用域
作用域:{}//isolated我之前也遇到过这个问题。通过进一步的调查,我可以理解,根据angular准则,隔离作用域只能具有自定义指令的属性。如果我们尝试创建一个与任何属性都不匹配的新作用域值,它会引发错误
myModule.directive('directiveName', function factory() {
return {
...
scope: {
'attrName': '@', // OK
'attrName2': '=localName', // OK
'attrName3': '<?localName', // OK
'attrName4': ' = name', // OK
'attrName5': 'name', // ERROR: missing mode @&=
'attrName6': 'name=', // ERROR: must be prefixed with @&=
'attrName7': '=name?', // ERROR: ? must come directly after the mode
}
...
}
});
myModule.directive('directiveName',function factory()){
返回{
...
范围:{
'attrName':'@',//确定
'attrName2':'=localName',//确定
“attrName3”:“但是“isSelected”会发生什么情况呢?”@DaveKaye我必须将其移动到控制器函数中,才能将其添加到$scope中。啊,明白了。我正在尝试使用link做类似的事情。