从Angular控制器访问输入字段会导致未定义

时间:2015-09-05 17:51:49

标签: javascript angularjs ionic-framework ionic prototypal-inheritance

所以我有一个搜索框,我输入文本然后提交,这应该将数据发送到我的Angular控制器并允许我访问它,但是我这样做时只是未定义。

尝试使用$ scope.searchtext

访问该字段时会导致此问题

我的代码如下:

$Mailchimp = new Mailchimp($api_key);
$result = $Mailchimp->campaigns->create('regular', 
        array('list_id'               => 'my_list_id',
    'subject'                           => 'This is a test subjects',
    'from_email'                        => 'test@test.com',
    'from_name'                         => 'From_Name'),
    array('html'                    => '<div>test html email</div>',
    'text'                                  => 'This is plain text.')
);


if( $result === false ) {
    // response wasn't even json
    echo 'sorry';
}
else if( isset($result->status) && $result->status == 'error' ) {
    echo 'Error info: '.$result->status.', '.$result->code.', '.$result->name.', '.$result->error;
} else {
echo 'worked';
$mySend = $Mailchimp->campaigns->send($result['id']);
}

2 个答案:

答案 0 :(得分:1)

ion-content会创建处理该DOM的子范围,在这种情况下,您可以使用AngularJS Prototypal inheritance

<强>代码

.directive('ionContent', [
  '$parse',
  '$timeout',
  '$ionicScrollDelegate',
  '$controller',
  '$ionicBind',
function($parse, $timeout, $ionicScrollDelegate, $controller, $ionicBind) {
  return {
    restrict: 'E',
    replace: true,
    transclude: true,
    require: '^?ionNavView',
    scope: true, //<-- this creates a prototypically inherited scope
    template:
    '<div class="scroll-content">' +
      '<div class="scroll"></div>' +
    '</div>',

在声明像ng-model这样的定义searchtext作为对象属性时,请遵循点规则,该属性将倾向于遵循javascript原型。

<强>标记

<input type="search" name="searchtext" ng-model="model.searchtext" placeholder="Search">

<强>控制器

$scope.model = {};

类似SO answer此处

答案 1 :(得分:0)

使用也可以使用 $ parent 来访问控制器的值。

Route::get('forum/add', ['middleware' => 'auth:student', 'uses' => "ForumQuestionsController@add"]);
Route::get('forum/{ques}', "ForumQuestionsController@show");