在ng-include中传递参数
在使用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-controller
或ng-init
,但是使用指令会更好。
当我将自定义属性用单引号包裹起来时,它可以正常工作,就像这样:pass="'parentScopeObject'" some="'Literal string'" properties="'parentScopeSomething'"
。谢谢!!
_Green:对于字符串,你需要使用"@ ",这样你就不需要额外的引号。基本上,"@"
会直接使用传递参数的内容,"="
会将参数解释为父作用域中的变量名。在这个问题中很好地解释了这一点。