AngularJS directive with isolate scope, ng-repeat, and controllerAs











up vote
0
down vote

favorite














function directive() {
return {
restrict: 'E',
template: '<button ng-repeat="x in j.array" ng-click="j.set(x)">{{x}}</button>',
replace: true,
//scope: {},
bindToController: {
array: '=',
answer: '='
},
controller: function() {
var j = this;
j.set = function(data) {
j.answer = data;
};
},
controllerAs: 'j'
};
}




When I uncomment scope and create an isolate scope the directive no longer works. I'm trying to determine why.

Normally I still have access to the controllerAs in an ng-repeat, in this example when I lose it it's still available on $parent.j. I think there are 3 solutions.



Solution 1 is to leave it not in isolate scope.

Solution 2 would be to convert every reference to j inside the repeat to $parent.j.

Solution 3 is that there is some way to use j without having to use $parent that I'm unaware of.










share|improve this question









New contributor




Zack is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • Possible duplicate of Why is replace property deprecated in AngularJS directives?.
    – georgeawg
    yesterday















up vote
0
down vote

favorite














function directive() {
return {
restrict: 'E',
template: '<button ng-repeat="x in j.array" ng-click="j.set(x)">{{x}}</button>',
replace: true,
//scope: {},
bindToController: {
array: '=',
answer: '='
},
controller: function() {
var j = this;
j.set = function(data) {
j.answer = data;
};
},
controllerAs: 'j'
};
}




When I uncomment scope and create an isolate scope the directive no longer works. I'm trying to determine why.

Normally I still have access to the controllerAs in an ng-repeat, in this example when I lose it it's still available on $parent.j. I think there are 3 solutions.



Solution 1 is to leave it not in isolate scope.

Solution 2 would be to convert every reference to j inside the repeat to $parent.j.

Solution 3 is that there is some way to use j without having to use $parent that I'm unaware of.










share|improve this question









New contributor




Zack is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • Possible duplicate of Why is replace property deprecated in AngularJS directives?.
    – georgeawg
    yesterday













up vote
0
down vote

favorite









up vote
0
down vote

favorite













function directive() {
return {
restrict: 'E',
template: '<button ng-repeat="x in j.array" ng-click="j.set(x)">{{x}}</button>',
replace: true,
//scope: {},
bindToController: {
array: '=',
answer: '='
},
controller: function() {
var j = this;
j.set = function(data) {
j.answer = data;
};
},
controllerAs: 'j'
};
}




When I uncomment scope and create an isolate scope the directive no longer works. I'm trying to determine why.

Normally I still have access to the controllerAs in an ng-repeat, in this example when I lose it it's still available on $parent.j. I think there are 3 solutions.



Solution 1 is to leave it not in isolate scope.

Solution 2 would be to convert every reference to j inside the repeat to $parent.j.

Solution 3 is that there is some way to use j without having to use $parent that I'm unaware of.










share|improve this question









New contributor




Zack is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.













function directive() {
return {
restrict: 'E',
template: '<button ng-repeat="x in j.array" ng-click="j.set(x)">{{x}}</button>',
replace: true,
//scope: {},
bindToController: {
array: '=',
answer: '='
},
controller: function() {
var j = this;
j.set = function(data) {
j.answer = data;
};
},
controllerAs: 'j'
};
}




When I uncomment scope and create an isolate scope the directive no longer works. I'm trying to determine why.

Normally I still have access to the controllerAs in an ng-repeat, in this example when I lose it it's still available on $parent.j. I think there are 3 solutions.



Solution 1 is to leave it not in isolate scope.

Solution 2 would be to convert every reference to j inside the repeat to $parent.j.

Solution 3 is that there is some way to use j without having to use $parent that I'm unaware of.







angularjs angularjs-directive






share|improve this question









New contributor




Zack is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




Zack is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited yesterday









Aleksey Solovey

3,4813725




3,4813725






New contributor




Zack is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked yesterday









Zack

31




31




New contributor




Zack is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Zack is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Zack is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












  • Possible duplicate of Why is replace property deprecated in AngularJS directives?.
    – georgeawg
    yesterday


















  • Possible duplicate of Why is replace property deprecated in AngularJS directives?.
    – georgeawg
    yesterday
















Possible duplicate of Why is replace property deprecated in AngularJS directives?.
– georgeawg
yesterday




Possible duplicate of Why is replace property deprecated in AngularJS directives?.
– georgeawg
yesterday












1 Answer
1






active

oldest

votes

















up vote
1
down vote



accepted










It may be to do with the replace: true. If you wrap the button in a div, it seems to work! I've made a little Plunker here to demonstrate.






share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });






    Zack is a new contributor. Be nice, and check out our Code of Conduct.










     

    draft saved


    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53203649%2fangularjs-directive-with-isolate-scope-ng-repeat-and-controlleras%23new-answer', 'question_page');
    }
    );

    Post as a guest
































    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    1
    down vote



    accepted










    It may be to do with the replace: true. If you wrap the button in a div, it seems to work! I've made a little Plunker here to demonstrate.






    share|improve this answer

























      up vote
      1
      down vote



      accepted










      It may be to do with the replace: true. If you wrap the button in a div, it seems to work! I've made a little Plunker here to demonstrate.






      share|improve this answer























        up vote
        1
        down vote



        accepted







        up vote
        1
        down vote



        accepted






        It may be to do with the replace: true. If you wrap the button in a div, it seems to work! I've made a little Plunker here to demonstrate.






        share|improve this answer












        It may be to do with the replace: true. If you wrap the button in a div, it seems to work! I've made a little Plunker here to demonstrate.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered yesterday









        Sophie

        82079




        82079






















            Zack is a new contributor. Be nice, and check out our Code of Conduct.










             

            draft saved


            draft discarded


















            Zack is a new contributor. Be nice, and check out our Code of Conduct.













            Zack is a new contributor. Be nice, and check out our Code of Conduct.












            Zack is a new contributor. Be nice, and check out our Code of Conduct.















             


            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53203649%2fangularjs-directive-with-isolate-scope-ng-repeat-and-controlleras%23new-answer', 'question_page');
            }
            );

            Post as a guest




















































































            Popular posts from this blog

            Schultheiß

            Verwaltungsgliederung Dänemarks

            Liste der Kulturdenkmale in Wilsdruff