2014-08-30 47 views
0

我是AngularJS的新手,我需要通過單擊鏈接來包含其他模板。如何ng-include點擊鏈接

我有一個nav.html和一個header.html。都包含在index.html中。 在header.html中我有

<li class="search-box visible-md visible-lg" data-ng-include=" 'views/calls/search.html' "> 

來電/ search.html

<div class="input-group" data-ng-controller="callSearchCtrl"> 
<span class="input-group-addon"><i class="fa fa-search text-muted"></i></span> 
<input type="text" class="form-control" placeholder="Suchen..."></div> 

而且我通過點擊菜單點(即隱形眼鏡),包括在標題另一個模板加載通訊錄/search.html

<div class="input-group" data-ng-controller="contactsSearchCtrl"> 
<span class="input-group-addon"><i class="fa fa-search text-muted"></i></span> 
<input type="text" class="form-control" placeholder="Suchen..."></div> 

得到另一個搜索控制器。

這種情況是,我有一個搜索欄的標題,我想在加載的內容模板中搜索。

也許我已經得到了錯誤的思維方式來解決這個...

任何人都知道一個解決方案嗎?

此外:

現在我把不同的NG-點擊我的導航,如:

  <a href="#/contacts/contacts" data-ng-click="selectType('contacts')"><i class="fa fa-users"></i><span>Kontakte</span></a> 

但我必須把範圍功能在我HeaderCtrl或在我的NavCtrl?

P.S.對不起,我的英語不好:-)

乾杯 bambamboole

+0

查看關於ng-switch的文檔可能會有幫助。或者你也可以調用一個範圍函數來更新另一個包含ng-include實際路徑的範圍變量。希望有助於 – 2014-08-30 01:03:41

+0

@bambamboole re:增加 - 它需要在兩個模板共享的範圍內。更一般地說,我認爲你可能會使用比你需要更多的控制器。 – christang 2014-08-30 20:17:11

回答

2

最簡單也可能是最地道的是@編約翰建議。

data-ng-include="search.option" 

在你的控制器,

$scope.search = {}; 
$scope.selectType = function (type) { 
    $scope.search.option = 'views/'+type+'/search.html'; 
}; 
$scope.selectType('calls'); 

在您的菜單選項應該調用適當的處理程序,如

data-ng-click="selectType('calls')" 

data-ng-click="selectType('contacts')" 

適當。

+0

嗯,但我的導航欄和我的標題(帶搜索欄)有不同的控制器。 – bambamboole 2014-08-30 07:59:30