相关疑难解决方法(0)

如何在angularjs指令中要求控制器

谁能告诉我如何在另一个angularJS指令中包含一个指令的控制器.例如,我有以下代码

var app = angular.module('shop', []).
config(['$routeProvider', function ($routeProvider) {
    $routeProvider.when('/', {
        templateUrl: '/js/partials/home.html'
    })
        .when('/products', {
        controller: 'ProductsController',
        templateUrl: '/js/partials/products.html'
    })
        .when('/products/:productId', {
        controller: 'ProductController',
        templateUrl: '/js/partials/product.html'
    });
}]);

app.directive('mainCtrl', function () {
    return {
        controller: function ($scope) {}
    };
});

app.directive('addProduct', function () {
    return {
        restrict: 'C',
        require: '^mainCtrl',
        link: function (scope, lElement, attrs, mainCtrl) {
            //console.log(cartController);
        }
    };
});
Run Code Online (Sandbox Code Playgroud)

从各方面来说,我应该能够在addProduct指令中访问控制器,但事实并非如此.有没有更好的方法呢?

javascript angularjs angularjs-directive

84
推荐指数
2
解决办法
13万
查看次数

如何在AngularJs中的指令内修改范围

我需要在指令内的回调中修改根范围属性.但该指令位于由switch指令创建的内部作用域中.

HTML

<div ng-app="app" ng-controller='AppController'>
    <p>Selected: {{ selected }}</p>
    <div ng-switch on="selected">
        <div ng-switch-default>
            <p>Item: {{ selected }}</p>
            <custom-tag selected-item="selected" />
        </div>
        <div ng-switch-when="New value">
            <p>Worked</p>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

JavaScript的

angular.module('app', [])    
    .directive("customTag", [function () {
    return {
        restrict: "E",
        replace: true,
        template: "<input type='button' value='Click me' />",

        link: function (scope, element, attrs) {
            element.bind('click', function () {
                scope[attrs.selectedItem] = "New value";
                scope.$apply();
            });
        }
    };
}]);

function AppController($scope) {
    $scope.selected = 'Old value';
}
Run Code Online (Sandbox Code Playgroud)

小提琴:http://jsfiddle.net/nJ7FQ/

我的目标是能够在Selected区域中显示"New …

angularjs angularjs-directive angularjs-scope

26
推荐指数
2
解决办法
6万
查看次数