Javascript 需要帮助了解范围吗

Javascript 需要帮助了解范围吗,javascript,angularjs,twitter-bootstrap,datepicker,angularjs-scope,Javascript,Angularjs,Twitter Bootstrap,Datepicker,Angularjs Scope,我正在利用DatePicker,一个用Angular编写的引导组件,在用户安排了会议活动时,在日历日期上显示彩色点。Meetup API功能工作得很好,但是当我尝试填充DatePicker时,javascript函数出现了一个“未捕获的引用错误”。我想$scope变量把我绊倒了。我尝试过用几种不同的方法编写markMeetingOnDate(),但我以前从未与AngularJS合作过,我不确定自己做错了什么 .js .php 会议日历 所选日期为:{dt|date:'fullDate'} 您无

我正在利用DatePicker,一个用Angular编写的引导组件,在用户安排了会议活动时,在日历日期上显示彩色点。Meetup API功能工作得很好,但是当我尝试填充DatePicker时,javascript函数出现了一个“未捕获的引用错误”。我想$scope变量把我绊倒了。我尝试过用几种不同的方法编写markMeetingOnDate(),但我以前从未与AngularJS合作过,我不确定自己做错了什么

.js

.php


会议日历
所选日期为:{dt|date:'fullDate'}

您无法从脚本标记访问
markMeetingOnDate()
,脚本标记中的上下文不是角度范围,而是在
窗口
命名空间中。帮自己一个忙,只使用php作为api数据源angular@charlietfl你是说一旦创建了日期选择器,就没有办法更新它了吗?我不是在使用PHP作为Angular的API数据源吗?我正在处理一个在PHP中创建的Meetup对象。如果您在angular上下文中这样做,当然可以。如果不尝试使用php呈现所有这些内容,只需对数据进行api调用,并让angular在api数据源的范围内管理视图呈现,会简单得多……让angular使用
$http
对json进行ajax调用,并让angular根据范围数据管理视图。您能给我指一些可能对我有帮助的资源吗更好地理解如何做到这一点?这是我第一次玩AngularJS
angular.module('ui.bootstrap.demo', ['ngAnimate', 'ui.bootstrap']);
angular.module('ui.bootstrap.demo').controller('DatepickerDemoCtrl', function ($scope) {

    // This function results in an uncaught reference error
    function markMeetingOnDate(dateString) {
      dateInput = Date.parse(dateString)
      $scope.events = [{
        date: dateInput,
        status: 'full'    // colors the calendar date
      }];
    };

    // This code that does the same thing as above function works
    testDateString = "Thursday, September 17, 2015";
    dateInput = Date.parse(testDateString);
    $scope.events = [{
      date: dateInput,
      status: 'full'
    }];

});
<div ng-controller="DatepickerDemoCtrl">
        <h4>Meetup Calendar</h4>
        <div style="display:inline-block; min-height:290px;" id="DatepickerOnLeft">
          <?php
            // get all events for this member - $response is a JSON array
            $response = $meetup->getEvents(array(
              'member_id' => '190559018',
              'time' => '0,2m',
              'only' => 'group.name,venue.name,venue.address_1,venue.address_2,venue.zip,venue.city,venue.state,venue.name,time,event_url,name'
            ));

            // mark all events on the calendar
            $numOfMeetings = count($response);
            date_default_timezone_set('America/Chicago');
            for ($i = 0; $i < $numOfMeetings; $i++) {
              $date = date('l, F d, Y', $response[$i]->time / 1000);
              echo "Date is: $date";
              echo '<script type="text/javascript">'
                 , 'markMeetingOnDate(' . json_encode($date) . ');'
                 , '</script>'
              ;
            }
          ?>
          <datepicker ng-model="dt" min-date="minDate" show-weeks="false" class="well well-sm" custom-class="getDayClass(date, mode)"></datepicker>
        </div>


        <div id="MeetupDetailsOnRight">
          <pre>Selected date is: <em>{{dt | date:'fullDate' }}</em></pre>
        </div>
    </div>