Javascript中的函数预期问题
Function Expected issue in Javascript
我使用JQuery UI弹出。在点击OK按钮时,我调用了一个Angular函数
示例代码如下:
$('#dialog-sample').dialog({
autoOpen: false,
show: {
effect: "blind",
duration: 1000
},
hide: {
effect: "blind",
duration: 1000
},
resizable: false,
width: 500,
buttons: {
Save: {
id: 'btnSampleSubmit',
text: 'Submit',
click: function() {
var myScope = angular.element($('#myID')).scope();
myScope.myFunction();
}
},
Cancel: {
id: 'btnSaveWorkSpaceCancel',
text: 'Cancel',
click: function() {
$(this).dialog("close");
}
}
}
});
我还在控制器内部创建了函数"myFunction",该函数与id为"myID"的元素相关。
获取错误:
控制台上的"function expected"
在这里,我做了一个工作演示:
http://jsfiddle.net/
<html>
<head>
<link rel="stylesheet"
href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<style>
body {
background-color: #eef;
}
#dialog {
display: none;
}
.myTarget {
font-weight: bold;
font-style: italic;
color: red;
}
</style>
</head>
<body ng-app="myApp">
<div ng-controller="myCtrl">
<div>
<button open-dialog="dialog">Open Dialog</button>
</div>
</div>
<div id="dialog" title="Empty the recycle bin?">
<p>
<span class="ui-icon ui-icon-alert"
style="float: left; margin: 12px 12px 20px 0;"></span>These items
will be permanently deleted and cannot be recovered. Are you sure?
</p>
</div>
</body>
</html>
Angular JS Code
var app=angular.module('myApp', [])
.controller('myCtrl', function ($scope) {
$scope.myFunction = function () {
alert('inside myFunction ');
};
})
.directive('openDialog', function(){
return {
restrict: 'A',
link: function(scope, elem, attr, ctrl) {
var dialogId = '#' + attr.openDialog;
elem.bind('click', function(e) {
$( dialogId ).dialog({
autoOpen: true,
show: {
effect: "blind",
duration: 1000
},
hide: {
effect: "blind",
duration: 1000
},
resizable: false,
width: 500,
buttons: {
Save: {
id: 'btnSampleSubmit',
text: 'Submit',
click: function() {
//var myScope = angular.element($('#myID')).scope();
$(this).dialog("close");
scope.myFunction();
}
},
Cancel: {
id: 'btnSaveWorkSpaceCancel',
text: 'Cancel',
click: function() {
$(this).dialog("close");
}
}
}
});
});
}
};
});
修改
$('#myID')
'#myID'
HTML <div ng-controller="myCtrl">
假设你的控制器是myCtrl
var myScope = angular.element('[ng-controller="myCtrl"]').scope();
myScope.myFunction();
相关文章:
- IE9的HTML5 Canvas getImageData()函数存在问题
- javascript中的特定函数出现问题
- 运行Infinite Scroll后调用函数时出现问题
- jQuery使用ajax自动完成问题-TypeError:this.source不是函数
- 将代码放入click函数时出现javascript问题
- 使用setInterval调用原型函数时出现问题
- 在HTML中调用函数时出现问题
- 异步中的回调函数出现问题'张贴'
- Jquery函数返回订单问题
- 带有 JavaScript 随机数函数的未知问题
- 关于函数的Javascript问题 - IIFE
- 作用域问题-此函数是否形成闭包-JavaScript
- 用于异步函数中的循环和定时问题
- Createjs冲突问题localToLocal不是函数错误
- 使用Breeze脱机数据时出现未定义的问题不是函数
- 尝试将变量传递到对象中时的作用域问题'的方法构造函数
- Javascript函数变量传递语法问题
- 函数范围问题-函数未定义
- Javascript作用域问题:函数在$(doc).ready()中可用,但在事件处理程序中不可用
- 实现“喜欢”功能的问题.函数只工作一次