2015-05-25 188 views
0

我有问题角度ng-Click角度事件'ng-click'绑定问题

我的控制器

var ParentController = function () { 

    this.MyEvent = function() { 
     alert('foo-bar'); 
    }; 

    this.AddHTML= function() { 
     $("#ButtonSec").html('<input type='button' ng-click='Parent.MyEvent()' value='inner button'/>'); 
    }; 
}; 

angular.module('myApp', []).controller('ParentController', ParentController); 

HTML - 1(按预期工作按钮纳克点击绑定到作为预期 '内按钮'):

<div ng-app='testComponent'> 
    <div id="content" ng-controller="ParentController as Parent"> 
     <div id="ButtonSec"> 
      <input type='button' ng-click='Parent.MyEvent()' value='inner button'/> 
     </div> 
    </div> 
</div> 

HTML-2(不工作):当使用添加HTML按钮呈现HTML。事件不绑定到内按钮应该(重要的事情,我不能用$范围根据客户要求)

<div ng-app='testComponent'> 
    <div id="content" ng-controller="ParentController as Parent"> 
     <div id="ButtonSec"> 

     </div> 
     <input type='button' ng-click='Parent.AddHTML()' value='Add HTML'/> 
    </div> 
</div> 
+1

第二个不在'父'控制器范围。角度控制器的范围只适用于内容和本身只有 – Samir

+0

更新请检查...谢谢 –

+0

你包括jQuery? – Zee

回答

0

我建议你使用ng-if指令,它会增加或在Expression删除HTML中我们会提供给它。要显示隐藏该div,您需要在控制器上下文中维护一个变量,该变量将负责在html上显示div。

的Html

<div ng-app='testComponent'> 
    <div id="content" ng-controller="ParentController as Parent"> 
     <div ng-if="Parent.showContent" id="ButtonSec"> 
      <input type='button' ng-click='Parent.MyEvent()' value='inner button'/> 
     </div> 
     <input type='button' ng-click='Parent.showContent = true' value='Add HTML'/> 
    </div> 
</div> 
+0

我欢迎你的建议,实际上我的要求有点复杂,我们必须制作一个部分作为编辑器,以后我们将添加svg文件。这一切都应该是动态的,因为用户将创建一个定制设计与MS-paint相同(但不是那么多:P) –

0

不知道为什么你不想使用$范围,因为角度管理最终内部$范围。这是破解方式使用$ rootScope

var ParentController = function ($compile,$rootScope) { 

    this.MyEvent = function() { 
     alert('foo-bar'); 
    }; 

    this.AddHTML= function() { 
    $("#ButtonSec").html($compile("<input type='button' ng-click='Parent.MyEvent()' value='inner button'/>")($rootScope.$$childHead)); 
    }; 
}; 
+0

为什么要从控制器操作DOM? –

+0

@pankajparkar因为他想要 – Samir

+0

你需要真正看这个http://ng-learn.org/2014/01 /Dom-Manipulations..we不是在这里引导不正确的OP, –