Luke,
An small update on the code, the angular.element should be used for 
`temp.chldNodes[11]` as html is an jqLite/JQuery methods which is returned 
by angular.element. As the TypeError also states undefined is not a 
function which would be `*.html` *in this case. And also childNodes would 
have all the nodes which are  HTMLElement or not (comment, text, etc..).

$scope.modif = function (e) {
> var temp = e.target.offsetParent.offsetParent.childNodes[3].childNodes[(
> this.$index+1)*2];
>  angular.element(temp.childNodes[11]).html($compile('<button 
> ng-click="save($event)">Save</button>')($scope));
> };



On Monday, 10 March 2014 01:22:17 UTC+5:30, Luke Kende wrote:
>
> You are mixing angular scope with dom manipulation.  They are two 
> different things so not surprised you are having trouble.  $scope values 
> should point to javascript literals, objects, arrays, but not to dom 
> elements.  You can't call a jquery method without wrapping it first.... Try 
> this:
>
> $scope.modif = function (e) {
>         var temp = 
> angular.element(e.target.offsetParent.offsetParent.childNodes[3].childNodes[(this.$index+1)*2]);
>         temp.childNodes[11].html($compile('<button 
> ng-click="save($event)">Save</button>')($scope));};
>
>
> On Sunday, March 9, 2014 9:48:20 AM UTC-6, François S wrote:
>>
>> I have un little problem with DOM manipulation.
>>
>> Here's my angular function:
>>
>> $scope.modif = function (e) {
>>         $scope.temp = 
>> e.target.offsetParent.offsetParent.childNodes[3].childNodes[(this.$index+1)*2];
>>         $scope.temp.childNodes[11].innerHTML = $compile('<button 
>> ng-click="save($event)">Save</button>')($scope);};
>>
>> but my button is rendered like that in the document:
>>
>> [[object HTMLButtonElement]
>>
>> I know that using innerHTML with Angular is wrong but when i'm using 
>> .html() i have this error:
>>
>> $scope.modif = function (e) {
>>         $scope.temp = 
>> e.target.offsetParent.offsetParent.childNodes[3].childNodes[(this.$index+1)*2];
>>         $scope.temp.childNodes[11].html($compile('<button 
>> ng-click="save($event)">Save</button>')($scope));};
>>
>> TypeError: undefined is not a function at h.$scope.modif
>>
>> Thanks, 
>>
>> François
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to