Как получить значение переменной в value элемента input?

Рейтинг: 0Ответов: 1Опубликовано: 23.02.2015

В контроллере определена функция, возвращающая время. Как в HTML для Input можно получить это значение?
Пробовал так: {Controller.function}

В контроллере есть метод:

$scope.getTimezone = function(){
                $scope.date = new Date();
                return $scope.date.getTimezoneOffset();
            }

В шаблоне путаюсь получить значение:

value="{{RegistrationController.getTimezone}}"

В моем случае, исходя из вашего ответа, получается (в контроллере формы):

$scope.getTimezone = function(){
                $scope.date = new Date();
                return $scope.date.getTimezoneOffset();
            }
            // Call function
            $scope.timZone = $scope.getTimezone();

Ответы

▲ 1Принят

Вместо пролога

С большой долей вероятности можно ответить "никак". Получить значение, в прямом смысле этого слова, вероятно, нельзя. В справке, я правда не все прочитал, есть две фразы "bind" и "compiles a string". Смею предположить, что это не jQuery.

Отобразить или связать состояние контроллера с элементом DOM можно через:

index.html

<!DOCTYPE html>
<html>
    <script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
    <script>
        var app = angular.module('myApp', []);
        app.controller('myCtrl', function($scope, $log) {
            $scope.getTimezone = function() {
                $scope.date = new Date();
                $log.info($scope.date.getTime());
                return $scope.date.getTimezoneOffset();
            };
            /*
             *
             * тут что-то происходит
             *
             */
            $scope.timZone = $scope.getTimezone();
        });
    </script>
    <body>
        <div ng-app="myApp" ng-controller="myCtrl">
            Директива ngValue:
            <br>
            <input type="text" ng-value="timZone">
            <br>
            Директива ngModel:
            <br>
            <input type="text" ng-model="timZone">
            <br>
            Провайдер $interpolateProvider. Связывание значения:
            <br>
            <input type="text" value="{{timZone}}">
            <br>
            Провайдер $interpolateProvider. Связывание с результатом функции:
            <br>
            <input type="text" value="{{getTimezone()}}">
        </div>
    </body>
</html>

Вместо эпилога

Не факт, что описанное мной точно отражает суть, но это работает в комнатных условиях. Поправлю, когда дочитаю справку.