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.