如何从网页的任何地方(控制器组件之外)调用控制器下定义的功能?
当我按下"get"按钮时它完美地工作.但我需要从div控制器外部调用它.逻辑是:默认情况下我的div是隐藏的.在导航菜单的某处我按下一个按钮,它应该显示()我的div并执行"get"功能.我怎么能做到这一点?
我的网页是:
<div ng-controller="MyController">
<input type="text" ng-model="data.firstname" required>
<input type='text' ng-model="data.lastname" required>
<form ng-submit="update()"><input type="submit" value="update"></form>
<form ng-submit="get()"><input type="submit" value="get"></form>
</div>
Run Code Online (Sandbox Code Playgroud)
我的js:
function MyController($scope) {
// default data and structure
$scope.data = {
"firstname" : "Nicolas",
"lastname" : "Cage"
};
$scope.get = function() {
$.ajax({
url: "/php/get_data.php?",
type: "POST",
timeout: 10000, // 10 seconds for getting result, otherwise error.
error:function() { alert("Temporary error. Please try again...");},
complete: function(){ $.unblockUI();},
beforeSend: function(){ $.blockUI()},
success: function(data){
json_answer = eval('(' + data …Run Code Online (Sandbox Code Playgroud) 我试图通过外部javascript函数(与目标控制器完全无关)来查看是否有一种简单的方法来访问控制器的内部范围
我在这里看到了其他几个问题
angular.element("#scope").scope();
将从DOM元素中检索范围,但我的尝试目前没有产生适当的结果.
这是jsfiddle:http://jsfiddle.net/sXkjc/5/
我目前正在经历从普通JS到Angular的过渡.我试图实现这一目标的主要原因是尽可能保持原始库代码的完整性; 无需我将每个功能添加到控制器.
关于如何实现这一目标的任何想法?对上述小提琴的评论也很受欢迎.