Ответ 1
В зависимости от того, используете ли вы синтаксис {{ ... }}
или ng-bind
, функция .toJSON
и .toString
на вашем объекте будет вызываться для определения его представления. Следовательно, вы можете предоставить представление, которое вы хотите, в функции .toString
или .toJSON
вашего объекта.
Это несоответствие, в котором вызывается функция, фактически разрешило некоторые проблемы.
Другой способ, которым вы можете это сделать, - написать свою собственную директиву my-toangularstr
следующим образом:
app.directive('myToangularstr', function () {
return {
scope: true,
template: '<span class="my-angular-value">{{ val.toAngularString() }}</span>',
link: function (scope, elem, attrs) {
scope.$watch(attrs['myToangularstr'], function (newVal) {
if (typeof newVal !== 'undefined') {
scope.val = newVal;
}
})
}
}
})
Рабочая демонстрация, показывающая все три метода, здесь.
Я думаю, что это так близко, что можно использовать внешний API angular.