我正在使用Angular.js项目,以及基于jQuery的自定义控件触发与该事件涉及到数据的事件; 我希望能够聆听到角(很容易的),这种情况下,然后显示与绑定到数据模板的对话框,这样当值对话框中改变时,会自动在对象反映,与事件一起发送。
我不知道如何在角度,如何呈现上绑定到一个数据对象的需求的模板做到这一点。
例如; 控制火灾“点击”以被点击的视觉对象的数据。 我想角听,然后从文件(如“menuDialog.html”)呈现模板的内容,这样我可以然后将其放置在那里我点击(我能做配售)在屏幕上。
我读过指令是要走的路,但是这似乎是处理自定义HTML标签或属性。 将同样的应用在这里,我将如何编程调用指令,将其绑定数据和获得的内容放在页面上?
我想确切地知道如何在骨干+车把实现这一点,但我不是太熟悉角。
谢谢
控制器:
.controller('MyCtrl', function($scope) {
$scope.html = '<div>testing</div>'; // or use $http to fetch remotely
})
标记:
<div html-template="html"></div>
该指令:
.directive('htmlTemplate', function($compile) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
element.click(function() {
var html = scope.$eval(attrs.htmlTemplate);
var newElement = $compile(html)(scope);
<do stuff with newElement (it's a jQuery element)>
});
}
}
})
需要注意的是,在HTML任何指示将调用期间处理$compile
。
根据我这里的问题的理解是,你需要做什么。
- 创建一个指令来处理由定制的jQuery控制引发的事件。 角本身支持事件的指令就像
ng-click
,但我不知道它是否会在情况下,你的jQuery控件生成自定义标记工作。 您控制器应该包含一个属性(javasript对象),其中包含你需要显示弹出一个+布尔属性的模型来表示何时显示模式
$ scope.popupModel = NULL; $ scope.showPopup = FALSE;
你的HTML应该用ng-include
你包括HTML模板。 ng-include
同时支持从服务器,并使用脚本标记客户端模板。
模板的HTML代码应结合物业popupModel
。
在指令中定义添加使用结合两种方法的控制器范围属性popupModel和showPopup对象散列语法范围属性。 就像是
指令( 'htmlTemplate',函数($编译){
return { restrict: 'A', scope:{model=@popupModel,show=@showPopup}, link: function (scope, element, attrs) { element.click(function(e) { model=e.model; show-true; }); } })
弹出窗口应该得到所示,每当shopPopup
是真实的。 这是可以做到的ng-show
。
我建议你开始挖更深的指令和ng-include
。