繁体   English   中英

将范围传递给AngularJS指令

[英]Passing scope to AngularJS directive

我有一个针对AngularJS指令的特定方案:

  • 通常,指令应继承默认范围
  • 但是对于某些特定情况,我想将$scope.myValues所有值替换$scope.myValues myValues (从Web服务加载的对象)

在这种情况下,我无法更改主作用域,因为它是由另一个应用程序(或多或少的插件机制)拥有的。

谢谢与问候斯特凡

如果认为我找到了解决方案:

样本HTML:

<wi-view data-layout="{{passLayout}}"></wi-view>
<hr />
Original property: {{layout.property1}}

样品控制器:

app.controller('wiController', function($scope) {

    // Simulating the original scope values
    $scope.layout = {};
    $scope.layout.property1 = 'Original Value';

    // New scope values, just here for binding it to the controller
    var passLayout = {};
    passLayout.property1 = 'Value Overwritten';
    passLayout.property2 = 'Another Property';
    $scope.passLayout = passLayout;

});

样本指令:

app.directive('wiView', function () {
var linkFunction = function(scope, elems, attrs) {

    if (attrs.layout !== undefined) {
        scope.layout = angular.fromJson(attrs.layout);
    }
};

return {
    restrict: "E",
    scope: true,
    priority: 0,
    link: linkFunction,
    template: '<div>Hello, {{layout.property1}}!</div>'
};

});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM