簡體   English   中英

將字符串變量從控制器傳遞給指令angularjs

[英]pass string variable from controller to directive angularjs

我正在嘗試將控制器中的字符串變量傳遞給使用隔離范圍的指令。 我設法傳遞了一個對象和一個函數,但似乎無法正常工作!

控制器:

angular.module("app").controller("myCtrl", function($scope) 
{
    //data that needs to be passed to the directive
    $scope.myParams = $scope.params; //object
    $scope.myDateOrder = $scope.dateOrder; //string
});

HTML:

 <div ng-controller="myCtrl">
        <my-dir params="myParams" dateOrder="myDateOrder"> 
        </my-dir>
    </div>

指示:

angular.module("app").directive("myDir", [
    function() {
        return {
            restrict: "E",
            scope: {
                checkPermissions: "&", //pulled from contact directive -> method/function
                params: "=", //passed object though from smwAddCustomerBank -> two way binding
                dateOrder: "@" //passed string value from smwAddCustomerBank -> one way binding
            },

dateOrder無法正常工作。 如果將console.log記錄在控制器中,則可以看到字符串,如果隨后將其記錄在指令中,則該字符串未定義。

有任何想法嗎?

指令屬性必須是kebab-case ,而不是camelCase

<div ng-controller="myCtrl">
    ̶<̶m̶y̶-̶d̶i̶r̶ ̶p̶a̶r̶a̶m̶s̶=̶"̶m̶y̶P̶a̶r̶a̶m̶s̶"̶ ̶d̶a̶t̶e̶O̶r̶d̶e̶r̶=̶"̶m̶y̶D̶a̶t̶e̶O̶r̶d̶e̶r̶"̶>̶ ̶
    <my-dir params="myParams" date-order="myDateOrder"> 
    </my-dir>
</div>

有關更多信息,請參見《 AngularJS開發人員指南-指令規范化》


謝謝-對於其他為此感到困擾的人,我需要做的全部更改是: params="myParams", date-order="{{ myDateOrder }}"

為了避免使用插值( {{ }} ),請使用帶有"<" 的單向綁定而不是使用"&"屬性綁定

    scope: {
        checkPermissions: "&", //pulled from contact directive -> method/function
        params: "=", //passed object though from smwAddCustomerBank -> two way binding
        ̶d̶a̶t̶e̶O̶r̶d̶e̶r̶:̶ ̶"̶@̶"̶
        dateOrder: "<" //passed string value from smwAddCustomerBank -> one way binding
    }

然后只需執行以下操作:

 <my-dir params="myParams" date-order="myDateOrder"> 

有關更多信息,請參見《 AngularJS綜合指令API參考范圍》

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM