簡體   English   中英

如何從HTML調用控制器功能?

[英]How to call controller function from html?

嗨,我對AngularJs和HTML,Javascript和CSS還是陌生的,所以請嘗試為假人解釋答案。

因此,由於某種原因,不會調用函數“ updateFilterTerm”。 變量“ filterTerm”始終保持與初始化相同。

就像您在代碼中看到的那樣,正在調用該函數的頁面是另一個頁面,類似於在變量“ filterTerm”的幫助下顯示內容的頁面,但是它們具有相同的控制器“ BatchMonitorCtrl”。

我做錯了什么嗎?或者您可以指導我解決該問題?

這是我的Controller.js的一部分:

...
function BatchMonitorCtrl($scope, Batchmonitor, BatchmonitorConfig, ConfigService, $localStorage, $timeout, flash, $routeParams) {
    $scope.filterTerm = '2312ab78-1e3c-48c5-82af-e38b42d704eb';

    $scope.updateFilterTerm = function(filterTerm) {
        $scope.filterTerm = filterTerm;
    };
}
...

這是我的bm.html的一部分:

...
<span ng-switch-default
    class="label label-primary {{types[charge.Type].CSS}}"
    style="cursor:pointer;padding:8px;"
    onclick="$(this).popover('toggle')"
    data-html='true'
    data-toggle="popover"
    data-trigger="manual"
    data-placement="top"
    title="{{&quot;common.BatchStatus-OK&quot;|i18n}}"
    data-content="Type: {{charge.Type}}<br />LogicalId: {{charge.LogicalId}}<br />Nest: {{charge.Nests}}<br />SetupDate: {{ charge.SetupDateObject | date:'yyyy-MM-dd HH:mm:ss' }}<br/>Updated: {{ charge.Updated['$date'] | date: 'yyyy-MM-dd HH:mm:ss' }}
    <br/><br/><a href='#/delete-charge' class='btn btn-primary btn-block' ng-click='updateFilterTerm({{charge._id}})'><span>{{&quot;common.Delete-Charge&quot;|i18n}}</span></a>">
    <h5><strong>{{charge.LogicalId}}</strong></h5>
</span>
...

這是我的dc.html的一部分,在這里我使用“ filterTerm”過濾批次:

...
<tr ng-repeat="batch in allBatches | orderBy: 'Sort' | filter: filterTerm">
...

我不確定,但是我認為它與范圍繼承有關。 嘗試使用controllerAs語法或其他點訪問技術:

| filter : obj.filterTerm;

function setFilter(term){
    $scope.obj.filterTerm = term;
}

我想我對自己的問題有一個答案。

因為我在兩個局部(頁面)上都具有相同的控制器,所以它們都有自己的該控制器實例。 因此,即使該函數被調用,下一頁也不會包含上一頁的信息。 因此,我需要找到另一個解決方案。

在您的HTML視圖中,請使用此

<script type="text/javascript">

function functiontocallcontrollermethod()
{
    $.ajax({
        type: 'POST',
        url: '/Poll/Mymethod',
        data: { voteid: $("#voteDemocrat").val() }
    });

</script>

在您的控制器中

  [HttpPost]
  [WebMethod]

      public void Mymethod(int voteid)
    {

        /// WORK HERE
    }

最后,WebMethod命名空間是

使用System.Web.Services;

暫無
暫無

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

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