Javascript AngularJS中可重用的弹出式解决方案
我正在做一个项目,其中大约有十几个模板(将来还会有更多),我需要在弹出/模式对话框中显示。我在谷歌上搜索过,但我不太喜欢我看到的解决方案,所以我决定自己做一个 我正在努力使我的控制器中有这样一个接口Javascript AngularJS中可重用的弹出式解决方案,javascript,angularjs,Javascript,Angularjs,我正在做一个项目,其中大约有十几个模板(将来还会有更多),我需要在弹出/模式对话框中显示。我在谷歌上搜索过,但我不太喜欢我看到的解决方案,所以我决定自己做一个 我正在努力使我的控制器中有这样一个接口 $scope.popup1Buttonclicked = function(){ dialogService.showdialog("popup1",$scope.popup1data,function(result,data){ if(result == "OK"){
$scope.popup1Buttonclicked = function(){
dialogService.showdialog("popup1",$scope.popup1data,function(result,data){
if(result == "OK"){
//save data
}
});
};
在我的对话服务中,我做了如下工作:
myApp.service("dialogService",function($compile){
this.showdialog = function(popupid,data,callback){
var html = "<div>name: {{data.name}}</div>";
var element = $compile(html)(data);
$("#pop").append(element);
//$("#pop").showDialog(element);
};
});
myApp.service(“dialogService”,函数($compile){
this.showdialog=函数(popupid、数据、回调){
var html=“name:{{data.name}}”;
var元素=$compile(html)(数据);
$(“#pop”)。追加(元素);
//$(“#pop”).showDialog(元素);
};
});
我想在弹出窗口上进行双向绑定,以便在对话框关闭后,我可以将更新的数据传递给回调函数
请查看plunker:
有人能给我指出正确的方向吗?在查看您的代码示例后:
$compile(html)(data);
数据-此处应为$scope。查看代码示例后:
$compile(html)(data);
数据-此处应为$scope。请查看以下内容:
我创建了一个管理弹出窗口的指令。这会在单击关闭按钮时触发控制器回调,并将数据从输入框传递给它。据我所知,这基本上就是你想要实现的 看看这个:
我创建了一个管理弹出窗口的指令。这会在单击关闭按钮时触发控制器回调,并将数据从输入框传递给它。据我所知,这基本上就是你想要实现的 我真的不明白你在这里想做什么。您需要一个弹出窗口,允许输入一些数据,然后在关闭后调用控制器操作功能?是的。我想通过传递一些数据从控制器调用弹出窗口,当用户完成从弹出窗口编辑数据时,我希望更新的数据回到我的控制器中。我喜欢这个库-谢谢STEVER,这不完全是我想要的,但它对我以后会很有用…我真的不明白你在这里试图做什么。您需要一个弹出窗口,允许输入一些数据,然后在关闭后调用控制器操作功能?是的。我想通过传递一些数据从控制器调用弹出窗口,当用户完成从弹出窗口编辑数据时,我希望更新的数据回到我的控制器中。我喜欢这个库-谢谢STEVER,这不完全是我想要的,但它对我以后会很有用…这很好,但我也在寻找预填充数据的能力,在您的示例中,我希望看到以popup1data作为前缀的输入——“popup1name”。这就是为什么我要将$scope.popup1data传递给dialogservice,并希望获得某种程度的数据绑定。您的代码得到了帮助,我修改了我的原始代码,现在可以使用了。史蒂佛的建议也起了作用。这是plunker,它非常接近我的设想。这很好,但我也在寻找预填充数据的能力,在您的示例中,我希望看到预填充popup1data的输入-“popup1name”。这就是为什么我要将$scope.popup1data传递给dialogservice,并希望获得某种程度的数据绑定。您的代码得到了帮助,我修改了我的原始代码,现在可以使用了。史蒂佛的建议也起了作用。这是一个非常接近我想象的plunker…谢谢STEVER,你的建议帮助我接近解决方案。谢谢STEVER,你的建议帮助我接近解决方案。