2015-04-06 77 views
0

我想改变我的头的div的默认内容内容:查找元素并改变其在AngularJs

<div> 
    <div> 
     <div class="page-header"> 
     <h1><span>{{messages['default_title']}}</span></h1> 
     </div> 
    <div> 
    <!-- other elements--> 
<div> 

在我的控制,我写了这个:

var titleElement = angular.element('div.page-header'); 
titleElement.html('<h1><span>Hello</span></h1>'); 

的DIV的内容被改变成功:

<div class="page-header"><h1><span>Hello</span></h1></div> 

,但我得到这个错误,而网页不能被成功加载:

TypeError: Cannot read property 'childNodes' of undefined 
    at g (https://localhost/test/js/angular/angular.min.js:47:278) 
    at g (https://localhost/test/js/angular/angular.min.js:47:273) 
    at g (https://localhost/test/js/angular/angular.min.js:47:273) 
    at g (https://localhost/test/js/angular/angular.min.js:47:273) 
    at g (https://localhost/test/js/angular/angular.min.js:47:273) 
    at https://localhost/test/js/angular/angular.min.js:46:377 
    at link (https://localhost/test/js/angular/angular-route.js:915:7) 
    at J (https://localhost/test/js/angular/angular.min.js:54:373) 
    at g (https://localhost/test/js/angular/angular.min.js:47:256) 
    at https://localhost/test/js/angular/angular.min.js:46:377 <div ng-view="" class="ng-scope"> 
+0

好像你正试图混合AngularJS和jQuery语法... – DrCord

+0

更改数据模型,而不是DOM。也不应该在控制器 – charlietfl

+0

@charlietfl中存在dom代码,不应该操作消息变量。在某些情况下,标题是一个静态文本。 – united

回答

1

angular.element接受HTML或JS元件,而不是选择器

var titleElement = angular.element(document.querySelector('.page-header')); 
titleElement.html('<h1><span>Hello</span></h1>'); 
+0

它仍然得到相同的错误。 – united

+0

你有这个类的元素吗? – adeneo

+0

是的,

。它会改变div的内容,但会得到错误。 – united

2

代替操纵页标头的字符串。

尝试更新变量在控制器

$scope.messages['default_title'] = "Hello"; 
+0

我错过了一些问题。我的页面标题div也可以有静态文本: Goodby united

+0

而且我也无法更改消息变量。 (它不应该被操纵) – united