Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.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
Angularjs 在控制器中使用指令的值_Angularjs_Angularjs Directive - Fatal编程技术网

Angularjs 在控制器中使用指令的值

Angularjs 在控制器中使用指令的值,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我有一个指令,它采用ng类别的值: $app.directive('ngCategory', function() { return { link: function(scope, element, attrs) { var **categoryItem** = attrs.ngCategory ; } } }); 我在控制器中使用返回值direcitve: $app.cont

我有一个指令,它采用ng类别的值:

$app.directive('ngCategory', function() {
    return {
        link: function(scope, element, attrs) { 
            var **categoryItem** = attrs.ngCategory ;       
        }            
    }   
});
我在控制器中使用返回值direcitve:

$app.controller( 'Pedido', ['$scope', '$http' , function( $scope , $http ) {
    $http({ method: 'GET', url: 'js/menu/menu.json' }).success( function( data ) {
        $scope.posts = data;

        $scope.listItens = [],
        $scope.minValue ;

        ...

        **categoryItem**
    }); 
}]);

但是我不能,有人能帮忙吗?

您不能访问控制器中指令的局部变量。为了实现这一点,需要将变量双向绑定到指令。可以使用指令中的ngModel实现这一点,如下所示:

$app.directive('ngCategory', function() {
    return {
        scope: { title:'=title' },
        link: function(scope, element, attrs) { 
            scope.title = xyz ;       
        }            
    }   
});
备选案文一:

$app.directive('ngCategory', function() {
    return {
        require: '?ngModel',
        link: function(scope, element, attrs,ngModel) { 
            ngModel.$setViewValue = attrs.ngCategory ;       
        }            
    }   
});
在Html中

<button ng-category ng-category ="counter">Click Me</button>
为此,请使用html:

<button ng-category title ="counter">Click Me</button>

该变量是指令中链接函数的局部变量,因此您将无法在其他任何地方使用它。此外,您不应该将自定义指令命名为以ng开头。你想用这个代码做什么?您的控制器是否与指令有关?你能把值放在作用域上吗?但我如何在控制器内部使用?你正在把$scope变量计数器传递给指令。同样的方法也可用于controller@Mayrink如果您需要获得每个类别的最低值,您可以使用角度过滤器,而不是这里的指令