Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 与处理DOM的AngularJS指令通信_Javascript_Jquery_Angularjs - Fatal编程技术网

Javascript 与处理DOM的AngularJS指令通信

Javascript 与处理DOM的AngularJS指令通信,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我目前正在开发一个简单的单页应用程序,您可以单击一些,然后使用ngClick发送一些数据。这个有一个父级,我将CSS样式应用于angular.element和所有这些东西 问题是,当我单击此ngClick时,我会执行一些$http调用,并获取一个JSON来填充内部控制器变量。因此,当用户单击其他没有共同点的菜单(在控制器和指令方面)时,我填充其他列表,当用户单击此列表时,我必须为我前面提到的设置样式,这是一个指令 因此,我不知道如何告诉指令上的链接引用,它必须具有一些我也不知道如何传递的属性,可

我目前正在开发一个简单的单页应用程序,您可以单击一些
  • ,然后使用
    ngClick
    发送一些数据。这个
  • 有一个父级
    ,我将CSS样式应用于
    angular.element
    和所有这些东西

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

    因此,我不知道如何告诉
    指令
    上的
    链接
    引用,它必须具有一些我也不知道如何传递的属性,可能是要读取的服务?我曾想过使用一个服务来存储从控制器传递到指令的信息,但我对Angular还不熟悉,不知道该怎么做。我找了很多,但没有找到我要找的东西。我想使用
    $watch
    但是我的变量要在控制器上进行监视,所以我必须回到父作用域2次才能到达它

    非常感谢

    
    
    <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: '&'
           }
        };
    });
    
    module.directive('myDir',function(){ 返回{ 限制:'E', 模板:“
  • ”, 控制器:函数(){ var$ctrl=this; this.fetch=函数(){ api.fetch().then(函数(stylesFromResponse){ $ctrl.onFetch({$style:stylesFromResponse}); }); }; }, bindToController:对, controllerAs:“$ctrl”, 范围:{ onFetch:“&” } }; });
    您可以根据任何条件使用ng样式或ng类。我不能使用它,因为我从JSON接收到一些图像,这些图像将用作从数据库加载的背景图像。谢谢我几乎不懂你写的任何东西。。。你能在回答中解释一下吗?这样我就可以修改了,谢谢!据我所知,您有一个指令,该指令应该在获取数据时onClick获取数据,并与父控制器通信。在我的示例中,抓取li是myDir,当抓取准备就绪时,它在内部处理onClick并调用controller方法或外部代码