2016-11-01 8 views
1

Angularjsでng-includeを使用すると問題が発生しました...
Imは単一のhtml形式を持ち、他のhtmlファイルも含んでいます。私のコントローラで

<div ng-controller="appCtrl"> 
<input type="text" ng-model="data.name"> 
{{data.name}}<!--getting the value here--> 
</div> 


Tab1.htmlで
これは私のmain.htmlとあれば...

<div ng-controller="appCtrl"> 
<div ng-include src="'/Tab1.html'"></div> 
{{data.name}} 
<!--trying to use one of the Tab1 field but unable to fetch --> 
<button type="submit" ng-click=save()>Save</button> 
</div> 


angular.module('app') 

.controller('appCtrl', ['$scope', '$http','$routeParams','$rootScope' ,'$location', 
function($scope, $http, $routeParams, $rootScope ,$location){ 

$scope.save= function(){ 
console.log($scope.data);//undefined... 
} 

}) 


間違いがあるかもしれませんが、分かっていません... あらかじめ固定していただきありがとうございます!

+0

$ scope.data maby – madalinivascu

+0

私が思うに、あなたは** NGを必要としませんTab1.htmlの-controller ** console.log()で** $ scope.data **を使用してください。 – Natiq

+0

これもインクルードしてから値{{data.name}}を取得できません... $ scope.dataがまだ動作していません –

答えて

0

NG-含まTab1.html

で親スコープを使用する$ prarent

をアクセスもする子スコープを作成

<div> 
<input type="text" ng-model="$parent.data.name"> 
{{$parent.data.name}}<!--getting the value here--> 
</div> 
+0

yopは...ありがとうございました... –

0

この

<div> 
    <input type="text" ng-model="data.name"> 
    {{data.name}}<!--getting the value here--> 
</div> 

のような子divの中にコントローラを取り外してください、それが現在のスコープがかかります。コントローラの使用でも

$scope.data={name:""}; 
$scope.save= function(){ 
    console.log($scope.data); 
} 

、それが動作します。

+0

tab1からsave関数を呼び出すとうまくいきますね。私はタブ1を含んでいました...そして、私はメインのhtmlにも{{data.name}}の値を入れたいと思っています... –

+0

これをコントローラの上に追加します '$ scope.data = {name:" "};';インクルードファイルには親のスコープがありますので、とにかく動作する必要があります –

関連する問題