Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs templateUrl回调函数中未获取自定义指令属性值_Angularjs_Angular Directive - Fatal编程技术网

Angularjs templateUrl回调函数中未获取自定义指令属性值

Angularjs templateUrl回调函数中未获取自定义指令属性值,angularjs,angular-directive,Angularjs,Angular Directive,我需要帮助以获取templateUrl中的值。我已经经历过类似的问题了 我的目标 我想在从HTML调用指令时设置一个属性。此属性将具有来自json对象的动态值。我想在指令的templateUrl函数中使用这个属性 你可以在这里看到,以便更了解我的问题- 我想根据属性值渲染复选框或单选模板 请帮忙 我知道ng包含方法,因此请建议替代解决方案。范围在tempalteUrl函数中不可访问。在链接功能中,您可以访问模板Url以及范围。我更改了你的密码 谢谢你能建议我如何动态处理用户交互吗?例如如何传递我

我需要帮助以获取templateUrl中的值。我已经经历过类似的问题了

我的目标

我想在从HTML调用指令时设置一个属性。此属性将具有来自json对象的动态值。我想在指令的templateUrl函数中使用这个属性

你可以在这里看到,以便更了解我的问题-

我想根据属性值渲染复选框或单选模板

请帮忙


我知道ng包含方法,因此请建议替代解决方案。

范围
在tempalteUrl函数中不可访问。在
链接
功能中,您可以访问模板Url以及范围。我更改了你的密码


谢谢你能建议我如何动态处理用户交互吗?例如如何传递我们可以从dynamicComponent模板调用的方法。您只需将ng click添加到模板中即可。该函数可以在scope.Ya中声明,我知道,但我的问题是如何在两个单独的复选框上调用两个不同的方法。虽然这两个复选框都将仅从一个模板呈现,但如何传递该方法以及在何处定义该方法
angular.module("myApp",[]).controller("myCtrl",['$scope',function($scope) {
    $scope.dynamicAttr = [
        {
            style:"stdRadio",
            label:"First Box"
        },
        {
            style:"stdCheck",
            label:"Second Box"
        }
    ];
}]).directive("dynamicComponent",['$compile','$http','$templateCache',function($compile, $http,$templateCache) {
    return {
        scope:{
            sourceData:"=sourceData"
        },
        restrict:"E",

        link: function (scope, element, attrs) {
            $http.get((scope.sourceData.style == "stdRadio")?"dynamicComponentRadio.html":"dynamicComponentCheckBox.html", {cache: $templateCache}).then(function(data){

         element.html(data.data);
         return $compile(element.contents())(scope);
            });

        }
    }
}]);