在ng-include中传递参数

10 浏览
0 Comments

在ng-include中传递参数

我刚开始学习angularjs。我有一个要求,在每个局部HTML中都会多次使用相同的单选按钮。因此,我想将其作为一个公共模板,并在其他局部模板中使用它。\n


\n这将显示如下的单选按钮:\n

性别 :    O 男性
             O 女性

\n这很好,但是我需要在ng-include中以某种方式更改标签、文本和单选按钮的数量(我打算通过某种方式传递参数来实现)。\n我以前使用lodash,它可以很容易处理这个问题。我想在angular中也有一种方法。\n请帮忙。

0
0 Comments

在使用ng-include时,没有办法直接传递参数。不过,它可以访问与其所在HTML相同的作用域。

如果需要传递不同的参数,你需要使用一个指令来实现:

angular.module("myModule")
.directive('radioButton', [function () {
    return {
        restrict: 'E',
        scope: {
            pass: "=",
            some: "@",
            properties: "="
        },
        templateUrl: 'app/directives/views/radio-row.html',
        controller: ["$scope", function ($scope) {
            // Isolated $scope here
        }]
    };
}]);


你可以在ng-include所在的元素上使用ng-controllerng-init,但是使用指令会更好。

当我将自定义属性用单引号包裹起来时,它可以正常工作,就像这样:pass="'parentScopeObject'" some="'Literal string'" properties="'parentScopeSomething'"。谢谢!!

_Green:对于字符串,你需要使用"@ ",这样你就不需要额外的引号。基本上,"@"会直接使用传递参数的内容,"="会将参数解释为父作用域中的变量名。在这个问题中很好地解释了这一点。

0