AngularJS中可重用的弹出解决方案

时间:2013-10-01 09:47:55

标签: javascript angularjs

我正在做一个项目,其中有大约十二个模板(将来会有更多)我需要在弹出/模态对话框中显示。我用谷歌搜索了,但我不太喜欢我看到的解决方案(example),所以我决定自己制作。

我正努力在我的控制器中使用这样的界面。

  $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);
  };

  });

我想在弹出窗口上进行双向绑定,以便在关闭对话框后,我可以将更新的数据传递给回调函数。

请查看plunker:http://plnkr.co/edit/uhZ0r0rXCacnvoyCP7nQ?p=preview

有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:1)

审核完代码示例后:

$compile(html)(data); 

数据 - 这里应该是$ scope。

答案 1 :(得分:0)

看看这个:http://plnkr.co/edit/SUQnUhX0wyi9UDMc4Vpl?p=preview

我创建了一个管理弹出窗口的指令。这会在关闭按钮单击时触发控制器回调,并将数据从输入框传递给它。根据我的理解,这大致完成了你想要实现的目标。