Question: Now I have something like this:

```
<input type="text" ng-model="cell.location">

```

What I want is while you put 'ABC' in this field, this field will become disabled status, I know I can put a boolean param to control it via its controller.

However what I expect is something like this:

```
<input type="text" ng-disabled="{{cell.location = 'ABC'}}" ng-model="cell.location">

```

Which is clearer and simpler, unfortunately this approach doesn't work as expected, it will assign 'ABC' to this field rather than disable it. is that possible to implement in this kind of way? 

Thanks.

Answer: 
TLS is [not yet fully implemented](http://tirania.org/blog/archive/2015/Aug-27.html) in Mono. That means your HTTPS requests may fail where they would not when running your .NET app on Windows.

Xamarin Deployment
==================

Since you are using Xamarin, you can use [ModernHttpClient](https://github.com/paulcbetts/ModernHttpClient) which is a wrapper around the native iOS / Android networking libraries.

> 
> Android, Mac and iOS users can get the latest TLS for HTTP workloads
>  using ModernHttpClient. Mac/iOS users can use the built-in
>  CFNetworkHandler as well.
> 
> 
> 

Linux/Mac Deployment
====================

If you are deploying Mono on Linux/Mac (without Xamarin), you'll need to find a workaround for the lack of TLS support.

There are 2 possible workarounds that come to mind:

### Use a Custom TLS Implementation

Try using [juhovh/AaltoTLS](https://github.com/juhovh/AaltoTLS), which is an implementation of the SSL/TLS network protocol written completely using C# and standard cryptographic libraries of .NET where relevant. It will take care of the TLS decryption/encryption and won't use the built-in lacking Mono implementation.

### Implement a TLS Proxy

Build a **TLS Proxy** that will do the TLS heavy-lifting for you -- you'll configure it as an HTTP proxy for your HTTP requests in Mono, it will receive them, and query the target server via HTTPS, handling the encryption and decryption for the Mono app.

**Workflow:**

Mono App -> HttpClient sends HTTP request via TLS Proxy -> TLS Proxy converts HTTP request to HTTPS and sends it to target server -> TLS Proxy receives response -> TLS Proxy sends back response to HttpClient in HTTP format

Example code in Node.js for the TLS Proxy workaround using [nodejitsu/node-http-proxy](https://github.com/nodejitsu/node-http-proxy):

```
// Modules
var http = require('http');
var httpProxy = require('http-proxy');

// Proxy server options
var options = {secure: true}; // Validate remote SSL certificates

// Create a proxy server with custom application logic
var proxy = httpProxy.createProxyServer(options);

// Handle errors gracefully
proxy.on('error', function(e) {
    // Log to console
    console.log(e);
});

// Create server and define custom logic
var server = http.createServer(function(req, res) {
    // URL provided?
    if (req.url) { 
        // Convert to HTTPS
        req.url = req.url.replace('http://', 'https://');
    }

    // Get remote host from headers (and force HTTPS)
    var target = 'https://' + req.headers.host;

    // Proxy the request (target is the server to pass the request on to)
    proxy.web(req, res, { target: target });
});

// Proxy port
var port = 8080;

// Start listening for requests from clients
server.listen(port);

// Log the port number
console.log('proxy.port: ' + port);

```
I'm not aware of a generic cross-platform Xamarin solution for this.

Xamarin has an option to support TLS 1.2 for iOS9 with App Transport Security ( <https://developer.xamarin.com/guides/ios/platform_features/introduction_to_ios9/ats/> ) :

> 
> Any connection made with NSUrlConnection, CFUrl or NSUrlSession will
>  use ATS by default in apps built for iOS 9 and OS X 10.11 (El
>  Capitan).
>  ATS will enforce the following requirements for all internet
>  connections: All connection ciphers must be using forward secrecy. The
>  Transport Layer Security (TLS) protocol must be version 1.2 or
>  greater. At least a SHA256 fingerprint with either a 2048 bit or
>  greater RSA key, or a 256 bit or greater Elliptic-Curve (ECC) key must
>  be used for all certificates.
> 
> 
> 

There is a community push to fill this gap since April 2014 at <https://xamarin.uservoice.com/forums/144858-xamarin-platform-suggestions/suggestions/5758129-implement-tls-1-2> .