проверка, не является ли значение модели другого поля пустым, затем включить только чтение.
var myApp = angular.module('myApp', []);
myApp.controller('FooController', ['$scope', function($scope) {
$scope.first = "";
$scope.second = "";
}]);
<script src="//unpkg.com/angular/angular.js"></script>
<body ng-app="myApp">
<div ng-controller="FooController">
<p>First Name:
<input ng-model="first"/>
</p>
<p>Last Name:
<input ng-model="second" ng-readonly="first !== ''"/>
</p>
</div>
</body>