[英]Nested view controller and ng-click - AngularJs
我有8個jade
視圖,當時只有其中一個被加載,並由jquery
填充到具有controller
的div
中。
現在,我有兩個關於這些的問題:
controller
在我的局部視圖(相同的頂部controller
與主controller
)? 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.