2016-03-19 2 views
0

В приведенном ниже файле CSHTML три функции javascript не работают. Я пробовал три разных метода, которые я нашел, и никто не работает правильно.Вызов функции JS в представлении MVC

Возможно, проблема связана с неправильным пониманием времени загрузки страницы. Я получил доступ к базе данных в C# в файле cshtml, и я хочу добавить все данные, которые я получил в массив в файле js, чтобы его можно было применить к аддону Angularjs Smart-Table. Я не мог найти примеров смарт-таблиц, которые рисуют его данные из базы данных (что-то глупое, что у них их нет), поэтому я пытаюсь сделать это с моим ограниченным пониманием ASP.net, Angular.js, MVC6 и JS.

CSHTML Файл

<body ng-controller="paginationCtrl"> 
Number of Results: @num_results <br> @error_message <br> @results[1].title 

@foreach (Event row in results) 
{ 
    <script type="text/javascript"> 
     jk(); 
    </script> 

    @Html.Raw("push('" + @row.event_id + "', " + "'" + @row.title + "', " + "'" + @row.datetime + "', " + "'" + @row.place + "', " + "'" + @row.address + "', " + "'" + @row.send_calendar_invites + "', " + "'" + @row.full_description + "', " + "'" + @row.description + "', " + "'" + @row.is_expired + "', " + "'" + @row.rsvp_limit + "', " + "'" + @row.rsvp_cutoff + "');"); 

    <text>push(@row.event_id, @row.title, @row.datetime, @row.place, @row.address, @row.send_calendar_invites, @row.full_description, @row.description, @row.is_expired, @row.rsvp_limit, @row.rsvp_cutoff);</text> 
} 

Javascript Файл

angular.module('myApp', ['smart-table']) 
.controller('paginationCtrl', ['$scope', function (scope) { 

    scope.itemsByPage = 10; 

    scope.rowCollection = []; 
    function jk() { 
     alert("TEST"); 
    } 
    function createEvent(eid, ttl, dt, plc, addr, sci, 
        fdesc, desc, ie, rl, rc) 
    { 
     var event_id = eid, title = ttl, datetime = dt, place = plc, address = addr, send_calendar_invites = sci, full_description = fdesc, description = plc, is_expired = ie, rsvp_limit = rl, rsvp_cutoff = rc; 

     return { 
      event_id: event_id, 
      title: title, 
      datetime: datetime, 
      place: place, 
      address: address, 
      send_calendar_invites: send_calendar_invites, 
      full_description: full_description, 
      description: description, 
      is_expired: is_expired, 
      rsvp_limit: rsvp_limit, 
      rsvp_cutoff: rsvp_cutoff 
     }; 
    } 

    function push(eid, ttl, dt, plc, addr, sci, 
        fdesc, desc, ie, rl, rc) { 
     jk(); 
     scope.rowCollection.push(
      createEvent(eid, ttl, dt, plc, addr, sci, 
        fdesc, desc, ie, rl, rc)); 
    } 

ответ

0

вашу функцию JK будет работать только в контроллере, так как вы определили там.

+0

О, боже, спасибо! Иногда вы просто смотрите на вещи так долго и пропустите что-то настолько очевидное! – Suitch

+0

, пожалуйста, отметьте это как ответ. благодаря! –