我可以在运行时将值从javascript发送到angular controller吗
例如,我有只在弹出窗口中显示的HTML我可以在运行时将值从javascript发送到angular controller吗,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,例如,我有只在弹出窗口中显示的HTML <div id="popup1" style="display: none; width: 600px; height: 400px; overflow: hidden"> <div ng-controller="DataBindingCtrl"> <div rel="title"> Show or Update Image </div> <div rel=
<div id="popup1" style="display: none; width: 600px; height: 400px; overflow: hidden">
<div ng-controller="DataBindingCtrl">
<div rel="title">
Show or Update Image
</div>
<div rel="body" style="padding: 10px; line-height: 150%">
<div >
<img src="https://upload.wikimedia.org/wikipedia/commons/a/ac/No_image_available.svg" style="float: left; background-color: white; width: 250px; height: 320px; border: 1px solid silver; margin: 5px;"/>
</div>
<div class="w2ui-field w2ui-span3">
<label>Files:</label>
<div>
<form class ="form-horizontal">
<input id="file" style="width: 100px" />{{selBookId}}
<input id="currentRecord" type="text" ng-model="currentRecordText" ng-model-instant>
{{currentRecordText}} {{idRec}}
</form>
</div>
</div>
</div>
@*<div rel="buttons">
<button class="btn" onclick="$('#popup2').w2popup()">Switch to Popup 2</button>
</div>*@
</div>
显示或更新图像
文件夹:
{{selBookId}
{{currentRecordText}{{idRec}}
@*
切换到弹出窗口2
*@
我想在用户单击弹出窗口按钮时为idRec设置一个值
这可能吗?正确的方法是什么?我假设您希望更改jQuery函数中的scope变量 您可以在角度控制器中使用jQuery函数,如下所示
app.controller('AppCtrl', function($scope) {
$('.popupCall').on('click', function(){
$scope.idRec= "newValue";
$scope.$apply();
$('#popup2').w2popup();
});
}
<button class="btn popupCall">Switch to Popup 2</button>
app.controller('AppCtrl',函数($scope){
$('.popupCall')。在('click',function()上{
$scope.idRec=“newValue”;
$scope.$apply();
$('#popup2').w2popup();
});
}
切换到弹出窗口2
您可以做的是向示波器上的控制器添加一个函数
数据绑定Ctrl
$scope.idRec = '';
$scope.updateIdRec = function() {
$scope.idRec= "newValue";
$('#popup2').w2popup();
};
HTML
切换到弹出窗口2
我想你可以有一个隐藏的文本字段,它的ng model
指向idRec
,每当你需要将jQuery与Angular一起使用时,最好将jQuery内容放在一个指令中。然后你就可以将你想要的任何参数从视图传递到指令中,并与jQuery代码一起使用。你能提供jsfidd吗le?您可以将$emit和$on与参数一起使用来更新控制器(或多个控制器)在表单上的操作之后。谢谢-你说得对,你给了我一个正确的方法!但是-据我所知,angularjs控制器内没有发送数据的方法。我们需要从控制器主体截取事件,而不使用任何变体…如果你想从jquery事件调用并将值传递给Angular函数,你可以使用Angular.element尝试并执行此操作谷歌。
<button class="btn" ng-click="updateIdRec()">Switch to Popup 2</button>