I have read documentation and googled this a lot but can't seem to figure it out.
When I select an item in my select drop down it doesn't bind to my ng-model="chosenVariant". console.log always has $scope.chosenVariant come back undefined. I have tried created a object called cartItemData, setting chosenVariant as a data field inside it and pushing $scope.itemForShoppingCart with itemVariant: cartItemData.chosenVariant but that didn't work either.
HTML
<div class="col-sm-3 my-3" ng-repeat="i in items">
    <div class="card text-center">
        <div class="card-header">{{i.itemName}}</div>
        <div class="card-body">
            <img class="responsiveBioImg" ng-src="{{i.itemImage}}">
        </div>
        <div class="card-footer">
            <a type="button" class="far fa-eye fa-3x gglplyIconColor"
                ng-click="selectItemForItemModal(i)" data-toggle="modal"
                data-target="#itemModal"></a>
        </div>
    </div>
</div>
Modal header and body data is populated with $scope.selectedModalItem
<div class="modal-footer"></div>
<nav class="navbar navbar-expand">
    <ul class="navbar-nav ml-auto">
        <li class="nav-item mx-2" id="sizesOptions"
            ng-if="selectedModalItem.hasVariant == true"
        >Options:
            <select ng-model="chosenVariant"
                    ng-options="variant for variant in selectedModalItem.variants">
            </select>
        </li>
        <li class="nav-item mx-2"><b>${{selectedModalItem.itemPrice}}</b>
            USD</li>
        <li class="nav-item mx-2"><a type="button"
            class="fas fa-shopping-cart navTextPink fa-2x"
            ng-click="addToCart()"></a></li>
    </ul>
</nav>
JS
$scope.getInventory = function() {
    $http.get('/AGRwebapp/webapi/agrapi')
        .then(
            function(response) {
                $scope.items = response.data;
            }
        );
}
$scope.selectItemForItemModal = function(selectedItem) {
    $scope.selectedModalItem = {
        itemId: selectedItem.itemId,
        itemName: selectedItem.itemName,
        itemPrice: selectedItem.itemPrice,
        itemDesc: selectedItem.itemDesc,
        itemImage: selectedItem.itemImage,
        hasVariant: selectedItem.hasVariant,
        variants: selectedItem.variants
    };
}
$scope.addToCart = function() {
    $scope.itemCartId++;
    $scope.itemForShoppingCart = {
        tempId: $scope.itemCartId,
        itemName: $scope.selectedModalItem.itemName,
        itemPrice: $scope.selectedModalItem.itemPrice,
        itemVariant: $scope.chosenVariant
    }
    console.log($scope.chosenVariant);
    $scope.shoppingCart.push($scope.itemForShoppingCart);
}
 
     
    