簡體   English   中英

嵌套視圖控制器和ng-click-AngularJs

[英]Nested view controller and ng-click - AngularJs

我有8個jade視圖,當時只有其中一個被加載,並由jquery填充到具有controllerdiv中。

現在,我有兩個關於這些的問題:

  1. 是否有必要重新定義controller在我的局部視圖(相同的頂部controller與主controller )?
  2. 所有這些視圖都具有相同的ng-click 但加載后無法正常工作。 但是,它們通過jquery click事件工作。 我應該對他們做些額外的事情嗎?

我之前對li元素也遇到過同樣的問題,但是我通過使用ng-click來獲得幫助來解決它,而使用compileData 不能從動態生成的HTML中獲得幫助,但是我無法通過按鈕獲得結果。

碼:

主玉:

div(ng-controller="elementCtrl") 
  div#ddd(class="col-lg-7 col-md-5 col-sm-7")

部分視圖示例:

div#spPartial()
  div.col-lg-12.col-md-12.col-sm-12 
    span.col-lg-2.col-md-5.col-sm-5 Name
    input#EnglishName(name="name" type="text" ng-model="elementModel.Name" value="#{Name}"  class="col-lg-5 col-md-7 col-sm-5")  
  button(type="button" compile-Data  name="btnSaveElement" ng-click="saveElement()") Save

控制器主要部分:

//It loads the partial view - It works successfully
$http.post('/api/elements/getElementTypesPartial',
                        {
                            "ElementId": elementId,
                            "ProgramId": newVal,
                            "ElementTypeId": elementTypeId
                        })
                        .success(function (d2) {
                            $("#ddd").html(d2);
                        }
//It doesn't work at all
$scope.saveElement = function () {
    alert();
    alert($scope.elementId);
}

還有一件事是我將$scope.saveElement放在控制器作用域的根目錄中。 我不知道angularJs如何管理$ scope,所以我在客戶端代碼中看到$scope.elementId 是對的還是我應該在每次部分加載時重新生成它( $scope.saveElement )?

抱歉,我找不到任何描述這些內容的參考...

您應該擺脫jQuery加載,並使用有角度的路由器,該路由器將根據路由配置加載模板。

由於它們是按角度加載的,因此將為您完成所有編譯。 路由器負責處理ajax,以自動獲取模板。

控制器也在路由配置中定義,因此您可以從模板中刪除ng-controller

更改應該花很長時間,因為設置路由配置非常容易上手

這將清除ng-click問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM