我需要Angular Js框架进行chrome扩展。
我已经AJS script
通过后台页面注入的内容。
但是,当我在内容脚本中使用角度指令时,它就无法正常工作。
我也尝试使用Bootstrap命令手动初始化Angular js,但这也没有用。
任何帮助,将不胜感激。
实际上,我正在尝试将使用纯JS开发的现有扩展转换为Ajs框架。我从后台页面的chrome选项卡中插入了AJs脚本,如下所示。
chrome.extension.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.Arg == 'INIT') {
$.when(
$.ajax({
url: server + '/Cscript.js',// Content Script
dataType: 'text'
}),
$.ajax({
url: server +'/util.js',// Jquery and other 3drparty
dataType: 'text'
}),
$.ajax({
url: server +'/angular.js',
dataType: 'text'
})
).then(function(Cscript,Ujs,ang) {
chrome.tabs.executeScript(sender.tab.id, {code: Ujs[0]+ang[0]+Cscript[0], allFrames:true});
sendResponse(config);
});
}
在内容脚本中,我创建了一个侧边栏div,该边栏div的顶部根目录具有属性
$("#SidePan").attr('ng-app','TApp');
$("#SidePan").attr("ng-csp", "true");
我为TApp创建了两个控制器Ctrl1和Ctrl2。
我在#SidePan中添加了一个Div,如下所示
$("#SidePan").html('<div ng-controller="Ctrl1">{{2+3}}</div>)
这按预期工作,但是当我在buttonclick上更改#SidePan html时,如下所示
$("#SidePan").html('<div ng-controller="Ctrl2">{{4+5}}</div>)
这不会计算expression.Am我做错了什么
$("#SidePan").html('<div ng-controller="Ctrl2">{{4+5}}</div>)
将无法正常工作。AngularJS不会监视DOM,因此它会知道您是从外部操纵它的。停止混淆jQuery和AngularJS。您需要使用$scope
s,ng-click
并可能需要一些自定义指令才能实现此目的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句