Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以在运行时将值从javascript发送到angular controller吗_Javascript_Jquery_Angularjs - Fatal编程技术网

我可以在运行时将值从javascript发送到angular controller吗

我可以在运行时将值从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=

例如,我有只在弹出窗口中显示的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="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>