与操纵DOM的AngularJS指令通信

时间:2016-09-23 12:44:58

标签: javascript jquery angularjs

我目前正在开发一个简单的单页应用,点击一些UIImageView*imageView=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"your_default_image_or_First.png"]]; [[firstViewController view] addSubview:imageView]; [[firstViewController view] bringSubviewToFront:imageView]; [NSThread SleepForTimeInterval:(2.5)]; [imageView setImage:[UIImage imageNamed:@"your_default_image_or_Second.png"]] // as usual [self.window makeKeyAndVisible]; //now fade out splash image [UIView transitionWithView:self.window duration:1.0f options:UIViewAnimationOptionTransitionNone animations:^(void){imageView.alpha=0.0f;} completion:^(BOOL finished){[imageView removeFromSuperview];}]; ,您就可以使用<li>发送一些数据。这个ngClick有一个父<li>,其中我使用<div>和所有这些东西来应用CSS样式......

问题是当我单击此angular.element时,我会执行一些ngClick调用并获取JSON来填充内部控制器变量。因此,当用户点击其他没有任何共同点的菜单时(根据控制器和指令),我填写其他列表,当用户点击此列表时,我必须设置前面提到的$http样式,即指令。

所以,我不知道如何告诉<li>关于link的引用,它必须设置一些我不知道如何传递的属性,也许是一个服务读?我想使用一个服务来存储信息从控制器传递到指令,但我是Angular的新手,我不知道该怎么做。我搜索了很多,但没找到我到底要找的东西。我想过使用directive,但我的变量是在控制器上观察的,所以我必须回到父范围2次才能到达它。

非常感谢!

1 个答案:

答案 0 :(得分:1)

<div ng-controller="Ctrl as ctrl" ng-style="ctrl.style">
   <my-dir on-fetch="ctrl.style = $style"></my-dir>
</div>

module.directive('myDir', function(){
    return {
       restrict: 'E',
       template: '<li ng-click="$ctrl.fetch()"></li>',
       controller: function(){
           var $ctrl = this;
           this.fetch = function(){
               api.fetch().then(function(stylesFromResponse){
                   $ctrl.onFetch({$style: stylesFromResponse});
               });
           };
       },
       bindToController: true,
       controllerAs: '$ctrl',
       scope: {
          onFetch: '&'
       }
    };
});