我试图根据条件在另一个指令中延迟加载指令。我有一个主要指令,其中有一个<script>
标签。只有当jquery存在时,included指令才能正确加载,问题是我的所有页面都没有加载jquery。还有第二个警告......
主线程上的同步XMLHttpRequest已弃用。
如果我找到一种纯粹的angularJs加载脚本的方式,我应该能够抑制它。
这是我的设置
<my-directive>
<script ng-if="expression" src="../path" type="application/javascript"></script>
</my-directive>
非常简单,但只有在加载jquery时它才有效。我尝试通过$http.get()
请求然后eval()
(我知道危险)加载它,但这不起作用。
答案 0 :(得分:1)
这是一种利用D3DXMatrixTranslation(&translation, 0, 0, 5);
matPosition = inverse(matRotate) * translation * matRotate * matPosition;
cBuffer.Final = matScale * matRotate * matPosition * matView * matProjection;
方法的方法。您可以创建一个指令,为此功能扩充$http
标记,检查已定义的<script>
属性。您当然可以根据需要修改此检查。请注意以下内容......
type
app.directive('script', function($http) {
return {
restrict: 'E',
scope: false,
link: function(scope, elem, attrs) {
if (attrs.type === 'text/javascript-lazy') {
$http.get(attrs.src).then(function(response) {
var code = response.data;
var f = new Function(code);
f();
});
}
}
};
});
这也适用于元素包装指令。
Plunker - 工作演示