在角度指令中共享变量

格雷格

我有一些指令,例如

app.directive('navContent', function() {
return {
    restrict: 'E',
    scope: {
        content: "="
    },
    templateUrl: '../../' + template + '/regions/nav.html',
}
});


app.directive('headerContent', function() {
return {
    restrict: 'E',
    scope: {
        content: "="
    },
    templateUrl: '../../' + template + '/regions/header.html',
}
});

所有都需要templateURL中的模板var。

我尝试了一个没有成功的功能

var siteID = angular.element('head').data('site-id');
$http.get('/api/sites/' + siteID)
    .success(function(site) {
        var template = site.template;   
       })
    .error(function(data) {
        console.log('Error: ' + data);
    });
};

siteID在DOM中:

<head data-site-id="123456">

和site.template应该从网站模型返回模板

任何帮助,将不胜感激

苏尼尔D.

$rootScope就像@Edward Knowles的回答一样,使用共享数据是完全合法的,并且效果很好。

但是,通过将数据放到应用程序中$rootScope,就可以将数据放到其他位置$scope这可能不是理想的选择(可变冲突,破坏封装,单元测试更加脆弱等)。

共享数据的另一种方法是使用Angular服务/工厂。这会将数据放入您可以注入所有控制器/指令的内容中。

app.service('SharedData', function() {
  var service = {
    foo: 'bar',
    baz: 'bip'
  };

  return service;

});


app.directive('myDirective', function(SharedData) {
  // do something w/SharedData
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Jenkins:在MultiJob中共享变量

来自分类Dev

Julia在脚本中共享变量

来自分类Dev

在整个包中共享全局变量

来自分类Dev

在容器视图中共享公共变量

来自分类Dev

javascript 对象中共享变量的最佳实践

来自分类Dev

角度的变量指令名称

来自分类Dev

如何从角度指令访问变量?

来自分类Dev

如何从角度指令访问变量?

来自分类Dev

在另一个隔离范围指令中共享指令中的数据

来自分类Dev

如何在Web会话中共享静态变量

来自分类Dev

如何在'joblib'Python库中共享变量

来自分类Dev

如何在单例类中共享变量

来自分类Dev

Laravel 5-在服务提供商中共享变量

来自分类Dev

如何在单例类中共享变量

来自分类Dev

如何在并发JSF查询中共享变量?

来自分类Dev

Puppet:如何在模块中共享公共资源/变量

来自分类Dev

类的两个实例在 Python 中共享相同的变量

来自分类Dev

如何定义稍后在 Julia 中共享的全局变量

来自分类Dev

基于属性的角度指令模板变量

来自分类Dev

用角度指令传递变量

来自分类Dev

用角度指令传递变量

来自分类Dev

在Gunicorn中共享内存?

来自分类Dev

在Angular中共享数据

来自分类Dev

在AngularJs中共享数据

来自分类Dev

在角度中将父指令变量传递给子指令

来自分类Dev

在角度中将父指令变量传递给子指令

来自分类Dev

角度指令-为什么不更新指令中的变量?

来自分类Dev

在两个cpp文件的标头中共享定义的全局变量

来自分类Dev

在多线程中共享数据-非静态变量可以吗?