没有获得通过angularJS中的指令创建的输入类型的值

时间:2015-05-08 09:33:13

标签: angularjs

我在angularJS中使用了datepicker的指令。下面是我的指令代码。它运行良好,当我在div.now中添加datepicker指令时显示datepicker我想在控制器中发送数据时从我的表单中使用所选日期我从控制器通过$http将其传递给php api 。当我在php中检查数据时,它没有显示日期。休息所有字段都正常工作只有使用指令创建的字段不显示值。我正在粘贴指令,控制器和表单的代码。

app.directive('datepicker', function () {
    return {
        restrict: 'A',
        controller: 'datepickerCtrl',
        controllerAs: 'dp',
        template: '<div id="dob" ng-controller="profileCtrl" dob class="input-group date" data-date-format="dd-mm-yyyy" ><input class="from_to_input"  name="1" type="text" ng-class={inputError:dp.validDate==false} class="form-control input-sm"  ng-model="profile.value"/><span class="input-group-addon"><span class="glyphicon glyphicon-th"></span></span></div>',
        scope: {
            'value': '='
        },
        link: function (scope, element, attribute) {
            //  scope.variable = attribute.value;
        }
    };
});

下面是datepicker控制器的代码

  app.controller('datepickerCtrl', function ($scope) {        
    $('.date').datepicker({ autoclose: true, todayHighlight: true });
    var inputDate = new Date(moment($scope.value));
    $scope.value = moment(inputDate).format("DD-MM-YYYY");
    $('.date').datepicker('setDate', inputDate);

    $scope.$watch('value', function (newVal) {                  
    });
});

下面是我的表单页面的代码

<form name="profileForm" role="form">
                    <input type="email" id="" name="email"  ng-model="profile.email" class="login_input_area" placeholder="Email">
                     <div class="col-xs-2" datepicker  value="date2"></div>
                    <input type="submit" value="Submit" ng-click="saveprofile(profile)" class="submit_btn">
                </form>

1 个答案:

答案 0 :(得分:0)

我的朋友! 请查看Angular指令的在线视频教程!

无论如何,在你的指令中你有ng-model =“profile.value”,那应该是“值”我认为

第二步:从指令模板中删除ng-controller =“profileCtrl”。指令具有本地范围。

第三:我更喜欢使用restrict:“E”,所以你可以使用自定义标签,在我看来更具可读性

还有一个:范围:{值:“=”},而不是范围:{'value':“=”}

更多:删除两个控制器:'datepickerCtrl',controllerAs:'dp'